50 lines
985 B
Go
50 lines
985 B
Go
// Copyright 2016 Qiang Xue. All rights reserved.
|
|
// Use of this source code is governed by a MIT-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package validation
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
type MyInterface interface {
|
|
Hello()
|
|
}
|
|
|
|
func TestNotNil(t *testing.T) {
|
|
var v1 []int
|
|
var v2 map[string]int
|
|
var v3 *int
|
|
var v4 interface{}
|
|
var v5 MyInterface
|
|
tests := []struct {
|
|
tag string
|
|
value interface{}
|
|
err string
|
|
}{
|
|
{"t1", v1, "is required"},
|
|
{"t2", v2, "is required"},
|
|
{"t3", v3, "is required"},
|
|
{"t4", v4, "is required"},
|
|
{"t5", v5, "is required"},
|
|
{"t6", "", ""},
|
|
{"t7", 0, ""},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
r := NotNil
|
|
err := r.Validate(test.value)
|
|
assertError(t, test.err, err, test.tag)
|
|
}
|
|
}
|
|
|
|
func Test_notNilRule_Error(t *testing.T) {
|
|
r := NotNil
|
|
assert.Equal(t, "is required", r.message)
|
|
r2 := r.Error("123")
|
|
assert.Equal(t, "is required", r.message)
|
|
assert.Equal(t, "123", r2.message)
|
|
}
|