github.com/bilus/oya@v0.0.3-0.20190301162104-da4acbd394c6/pkg/raw/imports_test.go (about) 1 package raw_test 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 "testing" 8 9 "github.com/bilus/oya/pkg/raw" 10 tu "github.com/bilus/oya/testutil" 11 ) 12 13 func TestOyafile_AddImport_NoImport(t *testing.T) { 14 outputDir, err := ioutil.TempDir("", "oya") 15 tu.AssertNoErr(t, err, "Error creating temporary output dir") 16 defer os.RemoveAll(outputDir) 17 18 oyafilePath := filepath.Join(outputDir, "Oyafile") 19 tu.MustCopyFile(t, "./fixtures/AddImport/Oyafile", oyafilePath) 20 21 raw, found, err := raw.Load(oyafilePath, oyafilePath) 22 tu.AssertNoErr(t, err, "Error loading raw Oyafile") 23 tu.AssertTrue(t, found, "No Oyafile found") 24 25 err = raw.AddImport("foo", "github.com/tooploox/foo") 26 tu.AssertNoErr(t, err, "Error adding import") 27 28 expectedContent := `Project: AddImport 29 Import: 30 foo: github.com/tooploox/foo 31 ` 32 tu.AssertFileContains(t, oyafilePath, expectedContent) 33 } 34 35 func TestOyafile_AddImport_ToExisting(t *testing.T) { 36 outputDir, err := ioutil.TempDir("", "oya") 37 tu.AssertNoErr(t, err, "Error creating temporary output dir") 38 defer os.RemoveAll(outputDir) 39 40 oyafilePath := filepath.Join(outputDir, "Oyafile") 41 tu.MustCopyFile(t, "./fixtures/AddImport_ToExisting/Oyafile", oyafilePath) 42 43 raw, found, err := raw.Load(oyafilePath, oyafilePath) 44 tu.AssertNoErr(t, err, "Error loading raw Oyafile") 45 tu.AssertTrue(t, found, "No Oyafile found") 46 47 err = raw.AddImport("bar", "github.com/tooploox/bar") 48 tu.AssertNoErr(t, err, "Error adding import") 49 50 expectedContent := `Project: AddImport_ToExisting 51 52 Import: 53 bar: github.com/tooploox/bar 54 foo: github.com/tooploox/foo 55 ` 56 tu.AssertFileContains(t, oyafilePath, expectedContent) 57 } 58 59 func TestOyafile_AddImport_MoreKeys(t *testing.T) { 60 outputDir, err := ioutil.TempDir("", "oya") 61 tu.AssertNoErr(t, err, "Error creating temporary output dir") 62 defer os.RemoveAll(outputDir) 63 64 oyafilePath := filepath.Join(outputDir, "Oyafile") 65 tu.MustCopyFile(t, "./fixtures/AddImport_MoreKeys/Oyafile", oyafilePath) 66 67 raw, found, err := raw.Load(oyafilePath, oyafilePath) 68 tu.AssertNoErr(t, err, "Error loading raw Oyafile") 69 tu.AssertTrue(t, found, "No Oyafile found") 70 71 err = raw.AddImport("bar", "github.com/tooploox/bar") 72 tu.AssertNoErr(t, err, "Error adding import") 73 74 expectedContent := `Project: AddImport_MoreKeys 75 Import: 76 bar: github.com/tooploox/bar 77 78 Values: 79 baz: qux 80 ` 81 tu.AssertFileContains(t, oyafilePath, expectedContent) 82 } 83 84 func TestOyafile_AddImport_TwoPacks(t *testing.T) { 85 outputDir, err := ioutil.TempDir("", "oya") 86 tu.AssertNoErr(t, err, "Error creating temporary output dir") 87 defer os.RemoveAll(outputDir) 88 89 oyafilePath := filepath.Join(outputDir, "Oyafile") 90 tu.MustCopyFile(t, "./fixtures/AddImport/Oyafile", oyafilePath) 91 92 raw, found, err := raw.Load(oyafilePath, oyafilePath) 93 tu.AssertNoErr(t, err, "Error loading raw Oyafile") 94 tu.AssertTrue(t, found, "No Oyafile found") 95 96 err = raw.AddImport("foo", "github.com/tooploox/foo") 97 tu.AssertNoErr(t, err, "Error adding import") 98 err = raw.AddImport("bar", "github.com/tooploox/bar") 99 tu.AssertNoErr(t, err, "Error adding import") 100 101 expectedContent := `Project: AddImport 102 Import: 103 bar: github.com/tooploox/bar 104 foo: github.com/tooploox/foo 105 ` 106 tu.AssertFileContains(t, oyafilePath, expectedContent) 107 } 108 109 func TestOyafile_AddImport_AlreadyImported(t *testing.T) { 110 outputDir, err := ioutil.TempDir("", "oya") 111 tu.AssertNoErr(t, err, "Error creating temporary output dir") 112 defer os.RemoveAll(outputDir) 113 114 oyafilePath := filepath.Join(outputDir, "Oyafile") 115 tu.MustCopyFile(t, "./fixtures/AddImport_ToExisting/Oyafile", oyafilePath) 116 117 raw, found, err := raw.Load(oyafilePath, oyafilePath) 118 tu.AssertNoErr(t, err, "Error loading raw Oyafile") 119 tu.AssertTrue(t, found, "No Oyafile found") 120 121 err = raw.AddImport("foo", "github.com/tooploox/foo") 122 tu.AssertErr(t, err, "Expected an error trying to import the same pack twice") 123 124 expectedContent := `Project: AddImport_ToExisting 125 126 Import: 127 foo: github.com/tooploox/foo 128 ` 129 tu.AssertFileContains(t, oyafilePath, expectedContent) 130 }