...
1
2
3
4
5 package valtest_test
6
7 import (
8 "errors"
9 "regexp"
10 "testing"
11 )
12
13
14 type fakeValidator struct {
15 happy bool
16 called bool
17 t *testing.T
18 }
19
20
21 const SAD = "i'm not happy Bob, NOT HAPPY"
22
23
24 func MakeHappyMapValidator(t *testing.T) *fakeValidator {
25 t.Helper()
26 return &fakeValidator{happy: true, t: t}
27 }
28
29
30 func MakeSadMapValidator(t *testing.T) *fakeValidator {
31 t.Helper()
32 return &fakeValidator{happy: false, t: t}
33 }
34
35
36 func MakeFakeValidator() *fakeValidator {
37 return &fakeValidator{}
38 }
39
40
41 func (v *fakeValidator) ErrIfInvalidKey(_ string) error {
42 return nil
43 }
44
45
46 func (v *fakeValidator) IsEnvVarName(_ string) error {
47 return nil
48 }
49
50
51 func (v *fakeValidator) MakeAnnotationValidator() func(map[string]string) error {
52 return nil
53 }
54
55
56 func (v *fakeValidator) MakeAnnotationNameValidator() func([]string) error {
57 return nil
58 }
59
60
61 func (v *fakeValidator) MakeLabelValidator() func(map[string]string) error {
62 return nil
63 }
64
65
66 func (v *fakeValidator) MakeLabelNameValidator() func([]string) error {
67 return nil
68 }
69
70
71 func (v *fakeValidator) ValidateNamespace(s string) []string {
72 pattern := regexp.MustCompile(`^[a-zA-Z].*`)
73 if pattern.MatchString(s) {
74 return nil
75 }
76 return []string{"doesn't match"}
77 }
78
79
80
81
82 func (v *fakeValidator) Validator(_ map[string]string) error {
83 v.called = true
84 if v.happy {
85 return nil
86 }
87 return errors.New(SAD)
88 }
89
90 func (v *fakeValidator) ValidatorArray(_ []string) error {
91 v.called = true
92 if v.happy {
93 return nil
94 }
95 return errors.New(SAD)
96 }
97
98
99 func (v *fakeValidator) VerifyCall() {
100 if !v.called {
101 v.t.Errorf("should have called Validator")
102 }
103 }
104
105
106 func (v *fakeValidator) VerifyNoCall() {
107 if v.called {
108 v.t.Errorf("should not have called Validator")
109 }
110 }
111
View as plain text