1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package validate
- import (
- "errors"
- "fmt"
- "testing"
- )
- func ExampleAll() {
- testAll := All(MinLength(4), Chars("0123456789abcdef"))
- fmt.Println(testAll("invalid input"))
- // Output: contains disallowed characters
- }
- func TestAll(t *testing.T) {
- testAll := All(
- MinLength(4),
- MaxLength(8),
- Chars("0123456789abcdef"),
- In("abcd", "abcdef", "12345678"),
- )
- testCases := map[string]error{
- "abcd": nil,
- "abcdef": nil,
- "12345678": nil,
- "abc": ErrMustBeLonger.With(4),
- "abcdef012": ErrMustBeShorter.With(8),
- "abcdefgh": ErrDisallowedChars,
- "01abcd": ErrValueNotAllowed,
- }
- for input, want := range testCases {
- t.Run(input, func(t *testing.T) {
- got := testAll(input)
- if !errors.Is(got, want) {
- t.Error("got", got)
- t.Error("want", want)
- }
- })
- }
- }
|