123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package validate
- import (
- "fmt"
- "strings"
- "testing"
- )
- func TestIn(t *testing.T) {
- type TestCase[T comparable] struct {
- S []T
- Input T
- Err bool
- }
- strIn := []string{"abcd", "ef", "1234"}
- strTestCases := []TestCase[string]{
- {S: strIn, Input: "abcd"},
- {S: strIn, Input: "ef"},
- {S: strIn, Input: "1234"},
- {S: strIn, Input: "5678", Err: true},
- }
- for _, tc := range strTestCases {
- t.Logf("%q in %s", tc.Input, strings.Join(tc.S, ", "))
- f := In(tc.S...)
- err := f(tc.Input)
- if tc.Err {
- if err == nil {
- t.Error("Expected error; got nil")
- }
- } else {
- if err != nil {
- t.Errorf("Expected nil; got %s", err)
- }
- }
- }
- intIn := []int{1, 23, 456}
- intTestCases := []TestCase[int]{
- {S: intIn, Input: 1},
- {S: intIn, Input: 23},
- {S: intIn, Input: 456},
- {S: intIn, Input: 789, Err: true},
- }
- for _, tc := range intTestCases {
- intf := []string{}
- for _, v := range tc.S {
- intf = append(intf, fmt.Sprint(v))
- }
- t.Logf("%d in %s", tc.Input, strings.Join(intf, ", "))
- f := In(tc.S...)
- err := f(tc.Input)
- if tc.Err {
- if err == nil {
- t.Error("Expected error; got nil")
- }
- } else {
- if err != nil {
- t.Errorf("Expected nil; got %s", err)
- }
- }
- }
- }
|