github.com/aleksi/gonuts.io@v0.0.0-20130622121132-3b0f2d1999fb/gopath/src/gonuts.io/AlekSi/nut/nut_test.go (about)

     1  package nut_test
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  	"path/filepath"
     7  	"runtime"
     8  
     9  	. "."
    10  	. "launchpad.net/gocheck"
    11  )
    12  
    13  type N struct {
    14  	nf *NutFile
    15  }
    16  
    17  var _ = Suite(&N{})
    18  
    19  func (f *N) SetUpTest(c *C) {
    20  	file, err := os.Open("../test_nut1/test_nut1-0.0.1.nut")
    21  	c.Assert(err, IsNil)
    22  	defer file.Close()
    23  
    24  	fi, err := file.Stat()
    25  	c.Assert(err, IsNil)
    26  
    27  	nf := new(NutFile)
    28  	n, err := nf.ReadFrom(file)
    29  	c.Assert(err, IsNil)
    30  	c.Assert(n, Equals, fi.Size())
    31  	f.nf = nf
    32  }
    33  
    34  func (f *N) TestNutFileReadFrom(c *C) {
    35  	c.Check(f.nf.Spec.Version.String(), Equals, "0.0.1")
    36  	c.Check(f.nf.Version.String(), Equals, "0.0.1")
    37  	c.Check(f.nf.Vendor, Equals, "debug")
    38  	c.Check(f.nf.Package.Name, Equals, "test_nut1")
    39  	c.Check(f.nf.Name, Equals, "test_nut1")
    40  	c.Check(f.nf.FileName(), Equals, "test_nut1-0.0.1.nut")
    41  	c.Check(f.nf.FilePath("prefix"), Equals, filepath.FromSlash("prefix/debug/test_nut1-0.0.1.nut"))
    42  	c.Check(f.nf.ImportPath("prefix"), Equals, "prefix/debug/test_nut1")
    43  	c.Check(f.nf.Doc, Equals, "Package test_nut1 is used to test nut.")
    44  	c.Check(f.nf.GoFiles, DeepEquals, []string{"test_nut1.go", fmt.Sprintf("test_nut1_%s.go", runtime.GOOS)})
    45  
    46  	c.Check(len(f.nf.Reader.File), Equals, 11)
    47  	names := make([]string, 0, 11)
    48  	for _, f := range f.nf.Reader.File {
    49  		names = append(names, f.Name)
    50  	}
    51  	c.Check([]string{"test_nut1.go", "test_nut1_darwin.go", "test_nut1_freebsd.go", "test_nut1_linux.go", "test_nut1_netbsd.go",
    52  		"test_nut1_openbsd.go", "test_nut1_plan9.go", "test_nut1_windows.go", "README", "LICENSE", "nut.json"},
    53  		DeepEquals, names)
    54  }
    55  
    56  func (f *N) TestNutFileReadFile(c *C) {
    57  	nf := new(NutFile)
    58  	err := nf.ReadFile("../test_nut1/test_nut1-0.0.1.nut")
    59  	c.Check(err, IsNil)
    60  	c.Check(nf, DeepEquals, f.nf)
    61  }
    62  
    63  func (f *N) TestNutReadFrom(c *C) {
    64  	pwd, err := os.Getwd()
    65  	c.Assert(err, IsNil)
    66  	c.Assert(os.Chdir("../test_nut1"), IsNil)
    67  	defer func() {
    68  		c.Assert(os.Chdir(pwd), IsNil)
    69  	}()
    70  
    71  	nut := new(Nut)
    72  	err = nut.ReadFrom(".")
    73  	c.Check(err, IsNil)
    74  	c.Check(nut.Spec, DeepEquals, f.nf.Spec)
    75  	c.Check(nut.Package, DeepEquals, f.nf.Package)
    76  }