github.com/leowmjw/otto@v0.2.1-0.20160126165905-6400716cf085/otto/testing_acceptance_test.go (about) 1 package otto 2 3 import ( 4 "os" 5 "path/filepath" 6 "testing" 7 ) 8 9 func init() { 10 testTesting = true 11 12 if err := os.Setenv(TestEnvVar, "1"); err != nil { 13 panic(err) 14 } 15 } 16 17 func TestTest_noEnv(t *testing.T) { 18 // Unset the variable 19 if err := os.Setenv(TestEnvVar, ""); err != nil { 20 t.Fatalf("err: %s", err) 21 } 22 defer os.Setenv(TestEnvVar, "1") 23 24 mt := new(mockT) 25 Test(mt, TestCase{}) 26 27 if !mt.SkipCalled { 28 t.Fatal("skip not called") 29 } 30 } 31 32 func TestTest_preCheck(t *testing.T) { 33 called := false 34 35 mt := new(mockT) 36 Test(mt, TestCase{ 37 PreCheck: func() { called = true }, 38 Core: TestCore(t, &TestCoreOpts{ 39 Path: filepath.Join("./test-fixtures", "basic", "Appfile"), 40 }), 41 }) 42 43 if !called { 44 t.Fatal("precheck should be called") 45 } 46 } 47 48 // mockT implements TestT for testing 49 type mockT struct { 50 ErrorCalled bool 51 ErrorArgs []interface{} 52 FatalCalled bool 53 FatalArgs []interface{} 54 SkipCalled bool 55 SkipArgs []interface{} 56 57 f bool 58 } 59 60 func (t *mockT) Error(args ...interface{}) { 61 t.ErrorCalled = true 62 t.ErrorArgs = args 63 t.f = true 64 } 65 66 func (t *mockT) Fatal(args ...interface{}) { 67 t.FatalCalled = true 68 t.FatalArgs = args 69 t.f = true 70 } 71 72 func (t *mockT) Skip(args ...interface{}) { 73 t.SkipCalled = true 74 t.SkipArgs = args 75 t.f = true 76 } 77 78 func (t *mockT) failed() bool { 79 return t.f 80 } 81 82 func (t *mockT) failMessage() string { 83 if t.FatalCalled { 84 return t.FatalArgs[0].(string) 85 } else if t.ErrorCalled { 86 return t.ErrorArgs[0].(string) 87 } else if t.SkipCalled { 88 return t.SkipArgs[0].(string) 89 } 90 91 return "unknown" 92 }