package check_test import ( "fmt" "reflect" "testing" ) //Expect return a checker func Expect(t *testing.T) Checker { return Checker{T: t} } // Checker test checking helper type Checker struct { *testing.T } //NotErr check for error func (t Checker) NotErr(err error) { msg := fmt.Sprintf("NOTERR Expect NOT [error] got '%v'", err) if err != nil { t.fail(msg) } t.pass(msg) } // Err expects param to be error func (t Checker) Err(err error) { msg := fmt.Sprintf("ERR: Expect [error] got '%v'", err) if err == nil { t.fail(msg) } t.pass(msg) } //Eq check if equal func (t Checker) Eq(a, b interface{}) { msg := fmt.Sprintf("EQ Expect '%v' got '%v'", b, a) if !reflect.DeepEqual(a, b) { t.fail(msg) } t.pass(msg) } //Diff check if different func (t Checker) Diff(a, b interface{}) { msg := fmt.Sprintf("DIFF Expect NOT '%v' got '%v'", a, b) if reflect.DeepEqual(a, b) { t.fail(msg) } t.pass(msg) } // NotNil expect param to be non nil func (t Checker) NotNil(a interface{}) { msg := fmt.Sprintf("NOTNIL Expect NOT [nil] got %v", a) if a == nil { t.fail(msg) } t.pass(msg) } func (t Checker) fail(msg string) { t.Fatalf("\033[31m[FAIL] %s\033[0m", msg) } func (t Checker) pass(msg string) { t.Logf("\033[32m[PASS]\033[m %s", msg) }