5849898283
Unit tests functional and coverage back to 100% Add more routes to dictionary, add more credentials, add default port 5554, rename cameradar logs ENV variable, improve unit test readability, remove tmp file
107 lines
2.0 KiB
Go
107 lines
2.0 KiB
Go
package objx_test
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/objx"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestExclude(t *testing.T) {
|
|
m := objx.Map{
|
|
"name": "Mat",
|
|
"age": 29,
|
|
"secret": "ABC",
|
|
}
|
|
|
|
excluded := m.Exclude([]string{"secret"})
|
|
|
|
assert.Equal(t, m["name"], excluded["name"])
|
|
assert.Equal(t, m["age"], excluded["age"])
|
|
assert.False(t, excluded.Has("secret"), "secret should be excluded")
|
|
}
|
|
|
|
func TestCopy(t *testing.T) {
|
|
m1 := objx.Map{
|
|
"name": "Tyler",
|
|
"location": "UT",
|
|
}
|
|
|
|
m2 := m1.Copy()
|
|
require.NotNil(t, m2)
|
|
m2["name"] = "Mat"
|
|
|
|
assert.Equal(t, m1.Get("name").Str(), "Tyler")
|
|
assert.Equal(t, m2.Get("name").Str(), "Mat")
|
|
|
|
}
|
|
|
|
func TestMerge(t *testing.T) {
|
|
m1 := objx.Map{
|
|
"name": "Mat",
|
|
}
|
|
m2 := objx.Map{
|
|
"name": "Tyler",
|
|
"location": "UT",
|
|
}
|
|
|
|
merged := m1.Merge(m2)
|
|
|
|
assert.Equal(t, merged.Get("name").Str(), m2.Get("name").Str())
|
|
assert.Equal(t, merged.Get("location").Str(), m2.Get("location").Str())
|
|
assert.Empty(t, m1.Get("location").Str())
|
|
}
|
|
|
|
func TestMergeHere(t *testing.T) {
|
|
m1 := objx.Map{
|
|
"name": "Mat",
|
|
}
|
|
m2 := objx.Map{
|
|
"name": "Tyler",
|
|
"location": "UT",
|
|
}
|
|
|
|
merged := m1.MergeHere(m2)
|
|
|
|
assert.Equal(t, m1, merged, "With MergeHere, it should return the first modified map")
|
|
assert.Equal(t, merged.Get("name").Str(), m2.Get("name").Str())
|
|
assert.Equal(t, merged.Get("location").Str(), m2.Get("location").Str())
|
|
assert.Equal(t, merged.Get("location").Str(), m1.Get("location").Str())
|
|
}
|
|
|
|
func TestTransform(t *testing.T) {
|
|
m := objx.Map{
|
|
"name": "Mat",
|
|
"location": "UK",
|
|
}
|
|
r := m.Transform(keyToUpper)
|
|
assert.Equal(t, objx.Map{
|
|
"NAME": "Mat",
|
|
"LOCATION": "UK",
|
|
}, r)
|
|
}
|
|
|
|
func TestTransformKeys(t *testing.T) {
|
|
m := objx.Map{
|
|
"a": "1",
|
|
"b": "2",
|
|
"c": "3",
|
|
}
|
|
mapping := map[string]string{
|
|
"a": "d",
|
|
"b": "e",
|
|
}
|
|
r := m.TransformKeys(mapping)
|
|
assert.Equal(t, objx.Map{
|
|
"c": "3",
|
|
"d": "1",
|
|
"e": "2",
|
|
}, r)
|
|
}
|
|
|
|
func keyToUpper(s string, v interface{}) (string, interface{}) {
|
|
return strings.ToUpper(s), v
|
|
}
|