github.heygears.com/openimsdk/tools@v0.0.49/config/validation/validation_test.go (about) 1 package validation 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 // TestSimpleValidator_ValidateSuccess 10 func TestSimpleValidator_ValidateSuccess(t *testing.T) { 11 validator := NewSimpleValidator() 12 type Config struct { 13 Name string 14 Age int 15 } 16 config := Config{Name: "Test", Age: 1} 17 18 err := validator.Validate(config) 19 assert.Nil(t, err) 20 } 21 22 // TestSimpleValidator_ValidateFailure 23 func TestSimpleValidator_ValidateFailure(t *testing.T) { 24 validator := NewSimpleValidator() 25 type Config struct { 26 Name string 27 Age int 28 } 29 config := Config{Name: "", Age: 0} 30 31 err := validator.Validate(config) 32 assert.NotNil(t, err) 33 assert.Contains(t, err.Error(), "validation failed") 34 } 35 36 // TestSimpleValidator_ValidateNonStruct 37 func TestSimpleValidator_ValidateNonStruct(t *testing.T) { 38 validator := NewSimpleValidator() 39 config := "I am not a struct" 40 41 err := validator.Validate(config) 42 assert.NotNil(t, err) 43 assert.Contains(t, err.Error(), "validation failed: config must be a struct or a pointer to struct") 44 }