github.com/aleksi/gonuts.io@v0.0.0-20130622121132-3b0f2d1999fb/gopath/src/gonuts.io/AlekSi/nut/spec_test.go (about) 1 package nut_test 2 3 import ( 4 "bytes" 5 "io/ioutil" 6 "os" 7 8 . "." 9 . "launchpad.net/gocheck" 10 ) 11 12 type S struct { 13 s *Spec 14 b *bytes.Buffer 15 } 16 17 var _ = Suite(&S{}) 18 19 func (f *S) SetUpTest(c *C) { 20 file, err := os.Open("../test_nut1/nut.json") 21 c.Assert(err, IsNil) 22 defer file.Close() 23 24 b, err := ioutil.ReadAll(file) 25 c.Assert(err, IsNil) 26 f.b = bytes.NewBuffer(b) 27 file.Seek(0, 0) 28 29 s := new(Spec) 30 n, err := s.ReadFrom(file) 31 c.Assert(err, IsNil) 32 c.Assert(n, Equals, int64(f.b.Len())) 33 f.s = s 34 } 35 36 func (f *S) TestReadFromWriteTo(c *C) { 37 c.Check(f.s.Version.String(), Equals, "0.0.1") 38 c.Check(f.s.Vendor, Equals, "debug") 39 c.Check(len(f.s.Authors), Equals, 1) 40 c.Check(f.s.Authors[0], Equals, Person{FullName: "Alexey Palazhchenko", Email: "alexey.palazhchenko@gmail.com"}) 41 c.Check(len(f.s.ExtraFiles), Equals, 2) 42 c.Check(f.s.ExtraFiles[0], Equals, "README") 43 c.Check(f.s.ExtraFiles[1], Equals, "LICENSE") 44 45 buf := new(bytes.Buffer) 46 n, err := f.s.WriteTo(buf) 47 c.Assert(err, IsNil) 48 c.Check(n, Equals, int64(f.b.Len())) 49 c.Check(buf.String(), Equals, f.b.String()) 50 } 51 52 func (f *S) TestReadFile(c *C) { 53 s := new(Spec) 54 err := s.ReadFile("../test_nut1/nut.json") 55 c.Check(err, IsNil) 56 c.Check(s, DeepEquals, f.s) 57 } 58 59 func (f *S) TestVendorFormat(c *C) { 60 c.Check(VendorRegexp.MatchString("aleksi"), Equals, true) 61 c.Check(VendorRegexp.MatchString("42"), Equals, true) 62 c.Check(VendorRegexp.MatchString("weird-"), Equals, true) 63 c.Check(VendorRegexp.MatchString("weird_"), Equals, true) 64 65 c.Check(VendorRegexp.MatchString("AlekSi"), Equals, false) // :( 66 c.Check(VendorRegexp.MatchString("-weird"), Equals, false) 67 c.Check(VendorRegexp.MatchString("-"), Equals, false) 68 c.Check(VendorRegexp.MatchString("_weird"), Equals, false) 69 c.Check(VendorRegexp.MatchString("_"), Equals, false) 70 }