github.com/nsqio/nsq@v1.3.0/internal/test/assertions.go (about) 1 package test 2 3 import ( 4 "path/filepath" 5 "reflect" 6 "runtime" 7 "testing" 8 ) 9 10 func Equal(t *testing.T, expected, actual interface{}) { 11 if !reflect.DeepEqual(expected, actual) { 12 _, file, line, _ := runtime.Caller(1) 13 t.Logf("\033[31m%s:%d:\n\n\t %#v (expected)\n\n\t!= %#v (actual)\033[39m\n\n", 14 filepath.Base(file), line, expected, actual) 15 t.FailNow() 16 } 17 } 18 19 func NotEqual(t *testing.T, expected, actual interface{}) { 20 if reflect.DeepEqual(expected, actual) { 21 _, file, line, _ := runtime.Caller(1) 22 t.Logf("\033[31m%s:%d:\n\n\tnexp: %#v\n\n\tgot: %#v\033[39m\n\n", 23 filepath.Base(file), line, expected, actual) 24 t.FailNow() 25 } 26 } 27 28 func Nil(t *testing.T, object interface{}) { 29 if !isNil(object) { 30 _, file, line, _ := runtime.Caller(1) 31 t.Logf("\033[31m%s:%d:\n\n\t <nil> (expected)\n\n\t!= %#v (actual)\033[39m\n\n", 32 filepath.Base(file), line, object) 33 t.FailNow() 34 } 35 } 36 37 func NotNil(t *testing.T, object interface{}) { 38 if isNil(object) { 39 _, file, line, _ := runtime.Caller(1) 40 t.Logf("\033[31m%s:%d:\n\n\tExpected value not to be <nil>\033[39m\n\n", 41 filepath.Base(file), line) 42 t.FailNow() 43 } 44 } 45 46 func isNil(object interface{}) bool { 47 if object == nil { 48 return true 49 } 50 51 value := reflect.ValueOf(object) 52 kind := value.Kind() 53 if kind >= reflect.Chan && kind <= reflect.Slice && value.IsNil() { 54 return true 55 } 56 57 return false 58 }