github.com/bilus/oya@v0.0.3-0.20190301162104-da4acbd394c6/pkg/changeset/changeset_test.go (about) 1 package changeset_test 2 3 import ( 4 "path/filepath" 5 "runtime" 6 "testing" 7 8 "github.com/bilus/oya/pkg/changeset" 9 "github.com/bilus/oya/pkg/oyafile" 10 tu "github.com/bilus/oya/testutil" 11 ) 12 13 func TestNoChangesetTask(t *testing.T) { 14 // No Changeset: directive means no changeset at this level. 15 // project.Changeset takes care of adding a default changeset task 16 // to root Oyafile if it's missing but here we don't worry about it. 17 rootDir := fullPath("./fixtures/TestOneOyafile") 18 actual, err := changeset.Calculate(tu.MustListOyafiles(t, rootDir)) 19 tu.AssertNoErr(t, err, "Error calculating changeset") 20 tu.AssertEqual(t, 0, len(actual)) 21 } 22 23 func TestEmptyChangeset(t *testing.T) { 24 rootDir := fullPath("./fixtures/TestEmptyChangeset") 25 expected := make([]*oyafile.Oyafile, 0) 26 actual, err := changeset.Calculate(tu.MustListOyafiles(t, rootDir)) 27 tu.AssertNoErr(t, err, "Error calculating changeset") 28 tu.AssertObjectsEqual(t, expected, actual) 29 } 30 31 func TestMinimalChangeset(t *testing.T) { 32 rootDir := fullPath("./fixtures/TestMinimalChangeset") 33 expected := []*oyafile.Oyafile{tu.MustLoadOyafile(t, rootDir, rootDir)} 34 actual, err := changeset.Calculate(tu.MustListOyafiles(t, rootDir)) 35 tu.AssertNoErr(t, err, "Error calculating changeset") 36 tu.AssertObjectsEqual(t, expected, actual) 37 } 38 39 func TestFullChangeset(t *testing.T) { 40 rootDir := fullPath("./fixtures/TestFullChangeset") 41 allOyafiles := tu.MustListOyafiles(t, rootDir) 42 expected := allOyafiles 43 actual, err := changeset.Calculate(tu.MustListOyafiles(t, rootDir)) 44 tu.AssertNoErr(t, err, "Error calculating changeset") 45 tu.AssertObjectsEqual(t, expected, actual) 46 } 47 48 func TestLocalOverride(t *testing.T) { 49 rootDir := fullPath("./fixtures/TestLocalOverride") 50 expected := []*oyafile.Oyafile{tu.MustLoadOyafile(t, filepath.Join(rootDir, "./project1"), rootDir)} 51 actual, err := changeset.Calculate(tu.MustListOyafiles(t, rootDir)) 52 tu.AssertNoErr(t, err, "Error calculating changeset") 53 tu.AssertObjectsEqual(t, expected, actual) 54 } 55 56 func TestUniqueness(t *testing.T) { 57 rootDir := fullPath("./fixtures/TestUniqueness") 58 allOyafiles := tu.MustListOyafiles(t, rootDir) 59 expected := allOyafiles 60 actual, err := changeset.Calculate(tu.MustListOyafiles(t, rootDir)) 61 tu.AssertNoErr(t, err, "Error calculating changeset") 62 tu.AssertObjectsEqual(t, expected, actual) 63 } 64 65 func fullPath(relPath string) string { 66 _, filename, _, _ := runtime.Caller(1) 67 return filepath.Join(filepath.Dir(filename), relPath) 68 }