mirror of
https://github.com/datarhei/core.git
synced 2025-10-24 16:30:26 +08:00
Add tests
This commit is contained in:
127
config/value/network_test.go
Normal file
127
config/value/network_test.go
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
package value
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestAddressValue(t *testing.T) {
|
||||||
|
var x string
|
||||||
|
|
||||||
|
val := NewAddress(&x, ":8080")
|
||||||
|
|
||||||
|
require.Equal(t, ":8080", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
x = "foobaz:9090"
|
||||||
|
|
||||||
|
require.Equal(t, "foobaz:9090", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
val.Set("fooboz:7070")
|
||||||
|
|
||||||
|
require.Equal(t, "fooboz:7070", x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCIDRListValue(t *testing.T) {
|
||||||
|
var x []string
|
||||||
|
|
||||||
|
val := NewCIDRList(&x, []string{}, " ")
|
||||||
|
|
||||||
|
require.Equal(t, "(empty)", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, true, val.IsEmpty())
|
||||||
|
|
||||||
|
x = []string{"127.0.0.1/32", "127.0.0.2/32"}
|
||||||
|
|
||||||
|
require.Equal(t, "127.0.0.1/32 127.0.0.2/32", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
val.Set("129.0.0.1/32 129.0.0.2/32")
|
||||||
|
|
||||||
|
require.Equal(t, []string{"129.0.0.1/32", "129.0.0.2/32"}, x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCORSOriginaValue(t *testing.T) {
|
||||||
|
var x []string
|
||||||
|
|
||||||
|
val := NewCORSOrigins(&x, []string{}, " ")
|
||||||
|
|
||||||
|
require.Equal(t, "(empty)", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, true, val.IsEmpty())
|
||||||
|
|
||||||
|
x = []string{"*"}
|
||||||
|
|
||||||
|
require.Equal(t, "*", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
val.Set("http://localhost")
|
||||||
|
|
||||||
|
require.Equal(t, []string{"http://localhost"}, x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestPortValue(t *testing.T) {
|
||||||
|
var x int
|
||||||
|
|
||||||
|
val := NewPort(&x, 11)
|
||||||
|
|
||||||
|
require.Equal(t, "11", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
x = 42
|
||||||
|
|
||||||
|
require.Equal(t, "42", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
val.Set("77")
|
||||||
|
|
||||||
|
require.Equal(t, int(77), x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestURLValue(t *testing.T) {
|
||||||
|
var x string
|
||||||
|
|
||||||
|
val := NewURL(&x, "http://localhost/foobar")
|
||||||
|
|
||||||
|
require.Equal(t, "http://localhost/foobar", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
x = "http://localhost:8080/foobar"
|
||||||
|
|
||||||
|
require.Equal(t, "http://localhost:8080/foobar", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
val.Set("http://localhost:8080/fooboz/foobaz")
|
||||||
|
|
||||||
|
require.Equal(t, "http://localhost:8080/fooboz/foobaz", x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestEmailValue(t *testing.T) {
|
||||||
|
var x string
|
||||||
|
|
||||||
|
val := NewEmail(&x, "foobar@example.com")
|
||||||
|
|
||||||
|
require.Equal(t, "foobar@example.com", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
x = "foobar+baz@example.com"
|
||||||
|
|
||||||
|
require.Equal(t, "foobar+baz@example.com", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
val.Set("foobar@sub.example.com")
|
||||||
|
|
||||||
|
require.Equal(t, "foobar@sub.example.com", x)
|
||||||
|
}
|
||||||
27
config/value/os_test.go
Normal file
27
config/value/os_test.go
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package value
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestAbsolutePathValue(t *testing.T) {
|
||||||
|
var x string
|
||||||
|
|
||||||
|
val := NewAbsolutePath(&x, "foobar")
|
||||||
|
|
||||||
|
require.Equal(t, "foobar", val.String())
|
||||||
|
require.Error(t, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
x = "/foobaz"
|
||||||
|
|
||||||
|
require.Equal(t, "/foobaz", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
val.Set("/fooboz")
|
||||||
|
|
||||||
|
require.Equal(t, "/fooboz", x)
|
||||||
|
}
|
||||||
147
config/value/primitives_test.go
Normal file
147
config/value/primitives_test.go
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
package value
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestStringValue(t *testing.T) {
|
||||||
|
var x string
|
||||||
|
|
||||||
|
val := NewString(&x, "foobar")
|
||||||
|
|
||||||
|
require.Equal(t, "foobar", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
x = "foobaz"
|
||||||
|
|
||||||
|
require.Equal(t, "foobaz", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
val.Set("fooboz")
|
||||||
|
|
||||||
|
require.Equal(t, "fooboz", x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStringListValue(t *testing.T) {
|
||||||
|
var x []string
|
||||||
|
|
||||||
|
val := NewStringList(&x, []string{"foobar"}, " ")
|
||||||
|
|
||||||
|
require.Equal(t, "foobar", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
x = []string{"foobar", "foobaz"}
|
||||||
|
|
||||||
|
require.Equal(t, "foobar foobaz", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
val.Set("fooboz foobar")
|
||||||
|
|
||||||
|
require.Equal(t, []string{"fooboz", "foobar"}, x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStringMapStringValue(t *testing.T) {
|
||||||
|
var x map[string]string
|
||||||
|
|
||||||
|
val := NewStringMapString(&x, map[string]string{"a": "foobar"})
|
||||||
|
|
||||||
|
require.Equal(t, "a:foobar", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
x = map[string]string{"a": "foobar", "b": "foobaz"}
|
||||||
|
|
||||||
|
require.Equal(t, "a:foobar b:foobaz", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
val.Set("x:fooboz y:foobar")
|
||||||
|
|
||||||
|
require.Equal(t, map[string]string{"x": "fooboz", "y": "foobar"}, x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestBoolValue(t *testing.T) {
|
||||||
|
var x bool
|
||||||
|
|
||||||
|
val := NewBool(&x, false)
|
||||||
|
|
||||||
|
require.Equal(t, "false", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, true, val.IsEmpty())
|
||||||
|
|
||||||
|
x = true
|
||||||
|
|
||||||
|
require.Equal(t, "true", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
val.Set("false")
|
||||||
|
|
||||||
|
require.Equal(t, false, x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestIntValue(t *testing.T) {
|
||||||
|
var x int
|
||||||
|
|
||||||
|
val := NewInt(&x, 11)
|
||||||
|
|
||||||
|
require.Equal(t, "11", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
x = 42
|
||||||
|
|
||||||
|
require.Equal(t, "42", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
val.Set("77")
|
||||||
|
|
||||||
|
require.Equal(t, int(77), x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestInt64Value(t *testing.T) {
|
||||||
|
var x int64
|
||||||
|
|
||||||
|
val := NewInt64(&x, 11)
|
||||||
|
|
||||||
|
require.Equal(t, "11", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
x = 42
|
||||||
|
|
||||||
|
require.Equal(t, "42", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
val.Set("77")
|
||||||
|
|
||||||
|
require.Equal(t, int64(77), x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestUint64Value(t *testing.T) {
|
||||||
|
var x uint64
|
||||||
|
|
||||||
|
val := NewUint64(&x, 11)
|
||||||
|
|
||||||
|
require.Equal(t, "11", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
x = 42
|
||||||
|
|
||||||
|
require.Equal(t, "42", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
val.Set("77")
|
||||||
|
|
||||||
|
require.Equal(t, uint64(77), x)
|
||||||
|
}
|
||||||
30
config/value/time_test.go
Normal file
30
config/value/time_test.go
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
package value
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestTimeValue(t *testing.T) {
|
||||||
|
var x time.Time
|
||||||
|
|
||||||
|
tm := time.Unix(1257894000, 0).UTC()
|
||||||
|
|
||||||
|
val := NewTime(&x, tm)
|
||||||
|
|
||||||
|
require.Equal(t, "2009-11-10T23:00:00Z", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
x = time.Unix(1257894001, 0).UTC()
|
||||||
|
|
||||||
|
require.Equal(t, "2009-11-10T23:00:01Z", val.String())
|
||||||
|
require.Equal(t, nil, val.Validate())
|
||||||
|
require.Equal(t, false, val.IsEmpty())
|
||||||
|
|
||||||
|
val.Set("2009-11-11T23:00:00Z")
|
||||||
|
|
||||||
|
require.Equal(t, time.Time(time.Date(2009, time.November, 11, 23, 0, 0, 0, time.UTC)), x)
|
||||||
|
}
|
||||||
@@ -6,26 +6,6 @@ import (
|
|||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestIntValue(t *testing.T) {
|
|
||||||
var i int
|
|
||||||
|
|
||||||
ivar := NewInt(&i, 11)
|
|
||||||
|
|
||||||
require.Equal(t, "11", ivar.String())
|
|
||||||
require.Equal(t, nil, ivar.Validate())
|
|
||||||
require.Equal(t, false, ivar.IsEmpty())
|
|
||||||
|
|
||||||
i = 42
|
|
||||||
|
|
||||||
require.Equal(t, "42", ivar.String())
|
|
||||||
require.Equal(t, nil, ivar.Validate())
|
|
||||||
require.Equal(t, false, ivar.IsEmpty())
|
|
||||||
|
|
||||||
ivar.Set("77")
|
|
||||||
|
|
||||||
require.Equal(t, int(77), i)
|
|
||||||
}
|
|
||||||
|
|
||||||
type testdata struct {
|
type testdata struct {
|
||||||
value1 int
|
value1 int
|
||||||
value2 int
|
value2 int
|
||||||
|
|||||||
Reference in New Issue
Block a user