github.com/bhameyie/otto@v0.2.1-0.20160406174117-16052efa52ec/builtin/app/ruby/gemfile_test.go (about) 1 package rubyapp 2 3 import ( 4 "fmt" 5 "path/filepath" 6 "testing" 7 ) 8 9 func TestHasGem(t *testing.T) { 10 cases := []struct { 11 Dir string 12 Gem string 13 Expected bool 14 }{ 15 { 16 "hasgem-basic", 17 "redis", 18 true, 19 }, 20 21 { 22 "hasgem-basic", 23 "newp", 24 false, 25 }, 26 27 { 28 "hasgem-lock-basic", 29 "redis", 30 true, 31 }, 32 33 { 34 "hasgem-lock-basic", 35 "newp", 36 false, 37 }, 38 39 { 40 "hasgem-empty", 41 "newp", 42 false, 43 }, 44 } 45 46 for _, tc := range cases { 47 errPrefix := fmt.Sprintf("In '%s', looking for '%s': ", tc.Dir, tc.Gem) 48 path := filepath.Join("./test-fixtures", tc.Dir) 49 ok, err := HasGem(path, tc.Gem) 50 if err != nil { 51 t.Fatalf("%s: %s", errPrefix, err) 52 } 53 if ok != tc.Expected { 54 t.Fatalf("%s: got %v", errPrefix, ok) 55 } 56 } 57 }