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  }