This repository has been archived by the owner on Dec 7, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLengthValidator_test.go
71 lines (66 loc) · 2.05 KB
/
LengthValidator_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package ecms_validator
import (
"testing"
)
type LengthValidatorTestCase struct {
Name string
TestValue interface {}
ExpectedResultBln bool
ExpectedMessagesLen int
Min int64
Max int64
}
func TestLengthValidator(t *testing.T) {
emptyChan1 := make(chan int, 0)
emptyChan2 := make(chan int, 2)
nonEmptyChan := make(chan int, 2)
nonEmptyChan <- 1
nonEmptyChan <- 2
for _, testCase := range []LengthValidatorTestCase{
{
Name: "nil, false",
TestValue: nil,
ExpectedResultBln: false,
ExpectedMessagesLen: 1,
Min: 1,
Max: 3,
},
{"\"\", false", "", false, 1, 1, 3},
{"[]byte{}, false", make([]byte, 0), false, 1, 1, 3},
{"[]byte{'a', 'b'}, true", []byte{'a', 'b'}, true, 0, 1, 3},
{"[2]byte{}, true", [2]byte{}, true, 0, 1, 3},
{"[2]byte{'a', 'b'}, true", [2]byte{'a', 'b'}, true, 0, 1, 3},
{"map[int]int{}, false", make(map[int]int, 0), false, 1, 1, 3},
{"map[int]int{1,2}, true", map[int]int{1: 2}, true, 0, 1, 3},
{"chan int{}, false", emptyChan1, false, 1, 1, 3},
{"[2]chan int{}, false", emptyChan2, false, 1, 1, 3},
{"chan int{1, 2}, true", nonEmptyChan, true, 0, 1, 3},
} {
t.Run(testCase.Name, func(t *testing.T) {
validatorOptions := NewLengthValidatorOptions()
validatorOptions.Min = testCase.Min
validatorOptions.Max = testCase.Max
validator := LengthValidator(validatorOptions)
resultBln, messages := validator(testCase.TestValue)
messagesLen := len(messages)
if resultBln != testCase.ExpectedResultBln {
t.Errorf("Expected %v for `resultBln.Result` but got %v",
testCase.ExpectedResultBln, resultBln)
}
if messagesLen != testCase.ExpectedMessagesLen {
t.Errorf("Expected %d messages. Got %d; Messages: %v",
testCase.ExpectedMessagesLen, messagesLen, messages)
}
for _, message := range messages {
if len(message) == 0 {
t.Error("Expected non-empty message strings. " +
"Received an empty message string.")
}
}
})
}
// Close channels
close(emptyChan1)
close(emptyChan2)
close(nonEmptyChan)
}