package validate import ( "errors" "testing" ) func TestEqualInt(t *testing.T) { type TestCase struct { I int C int Err error } testCases := []TestCase{ {I: 1, C: 1}, {I: 5 ^ 3, C: 5 ^ 3}, {I: 10, C: 15, Err: ErrValueNotAllowed}, } for i, tc := range testCases { t.Logf("(%d) Testing %d against %d", i, tc.I, tc.C) f := Equal(tc.C) err := f(tc.I) if !errors.Is(err, tc.Err) { t.Errorf("Expected error %v, got %v", tc.Err, err) } } } func TestEqualStr(t *testing.T) { type TestCase struct { I string C string Err error } testCases := []TestCase{ {I: "abc", C: "abc"}, {I: "def ghi 123", C: "def ghi 123"}, {I: "jkl", C: "mno", Err: ErrValueNotAllowed}, } for i, tc := range testCases { t.Logf("(%d) Testing %s against %s", i, tc.I, tc.C) f := Equal(tc.C) err := f(tc.I) if !errors.Is(err, tc.Err) { t.Errorf("Expected error %v, got %v", tc.Err, err) } } }