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  }