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
239 lines
5.9 KiB
Go
239 lines
5.9 KiB
Go
package objx
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestAccessorsAccessGetSingleField(t *testing.T) {
|
|
current := Map{"name": "Tyler"}
|
|
|
|
assert.Equal(t, "Tyler", current.Get("name").Data())
|
|
}
|
|
|
|
func TestAccessorsAccessGetSingleFieldInt(t *testing.T) {
|
|
current := Map{"name": 10}
|
|
|
|
assert.Equal(t, 10, current.Get("name").Data())
|
|
}
|
|
|
|
func TestAccessorsAccessGetDeep(t *testing.T) {
|
|
current := Map{
|
|
"name": Map{
|
|
"first": "Tyler",
|
|
"last": "Bunnell",
|
|
},
|
|
}
|
|
|
|
assert.Equal(t, "Tyler", current.Get("name.first").Data())
|
|
assert.Equal(t, "Bunnell", current.Get("name.last").Data())
|
|
}
|
|
|
|
func TestAccessorsAccessGetDeepDeep(t *testing.T) {
|
|
current := Map{
|
|
"one": Map{
|
|
"two": Map{
|
|
"three": Map{
|
|
"four": 4,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
assert.Equal(t, 4, current.Get("one.two.three.four").Data())
|
|
}
|
|
|
|
func TestAccessorsAccessGetInsideArray(t *testing.T) {
|
|
current := Map{
|
|
"names": []interface{}{
|
|
Map{
|
|
"first": "Tyler",
|
|
"last": "Bunnell",
|
|
},
|
|
Map{
|
|
"first": "Capitol",
|
|
"last": "Bollocks",
|
|
},
|
|
},
|
|
}
|
|
|
|
assert.Equal(t, "Tyler", current.Get("names[0].first").Data())
|
|
assert.Equal(t, "Bunnell", current.Get("names[0].last").Data())
|
|
assert.Equal(t, "Capitol", current.Get("names[1].first").Data())
|
|
assert.Equal(t, "Bollocks", current.Get("names[1].last").Data())
|
|
|
|
assert.Nil(t, current.Get("names[2]").Data())
|
|
}
|
|
|
|
func TestAccessorsAccessGetFromArrayWithInt(t *testing.T) {
|
|
current := []interface{}{
|
|
map[string]interface{}{
|
|
"first": "Tyler",
|
|
"last": "Bunnell",
|
|
},
|
|
map[string]interface{}{
|
|
"first": "Capitol",
|
|
"last": "Bollocks",
|
|
},
|
|
}
|
|
one := access(current, 0, nil, false)
|
|
two := access(current, 1, nil, false)
|
|
three := access(current, 2, nil, false)
|
|
|
|
assert.Equal(t, "Tyler", one.(map[string]interface{})["first"])
|
|
assert.Equal(t, "Capitol", two.(map[string]interface{})["first"])
|
|
assert.Nil(t, three)
|
|
}
|
|
|
|
func TestAccessorsAccessGetFromArrayWithIntTypes(t *testing.T) {
|
|
current := []interface{}{
|
|
"abc",
|
|
"def",
|
|
}
|
|
assert.Equal(t, "abc", access(current, 0, nil, false))
|
|
assert.Equal(t, "def", access(current, 1, nil, false))
|
|
assert.Nil(t, access(current, 2, nil, false))
|
|
|
|
assert.Equal(t, "abc", access(current, int8(0), nil, false))
|
|
assert.Equal(t, "def", access(current, int8(1), nil, false))
|
|
assert.Nil(t, access(current, int8(2), nil, false))
|
|
|
|
assert.Equal(t, "abc", access(current, int16(0), nil, false))
|
|
assert.Equal(t, "def", access(current, int16(1), nil, false))
|
|
assert.Nil(t, access(current, int16(2), nil, false))
|
|
|
|
assert.Equal(t, "abc", access(current, int32(0), nil, false))
|
|
assert.Equal(t, "def", access(current, int32(1), nil, false))
|
|
assert.Nil(t, access(current, int32(2), nil, false))
|
|
|
|
assert.Equal(t, "abc", access(current, int64(0), nil, false))
|
|
assert.Equal(t, "def", access(current, int64(1), nil, false))
|
|
assert.Nil(t, access(current, int64(2), nil, false))
|
|
|
|
assert.Equal(t, "abc", access(current, uint(0), nil, false))
|
|
assert.Equal(t, "def", access(current, uint(1), nil, false))
|
|
assert.Nil(t, access(current, uint(2), nil, false))
|
|
|
|
assert.Equal(t, "abc", access(current, uint8(0), nil, false))
|
|
assert.Equal(t, "def", access(current, uint8(1), nil, false))
|
|
assert.Nil(t, access(current, uint8(2), nil, false))
|
|
|
|
assert.Equal(t, "abc", access(current, uint16(0), nil, false))
|
|
assert.Equal(t, "def", access(current, uint16(1), nil, false))
|
|
assert.Nil(t, access(current, uint16(2), nil, false))
|
|
|
|
assert.Equal(t, "abc", access(current, uint32(0), nil, false))
|
|
assert.Equal(t, "def", access(current, uint32(1), nil, false))
|
|
assert.Nil(t, access(current, uint32(2), nil, false))
|
|
|
|
assert.Equal(t, "abc", access(current, uint64(0), nil, false))
|
|
assert.Equal(t, "def", access(current, uint64(1), nil, false))
|
|
assert.Nil(t, access(current, uint64(2), nil, false))
|
|
}
|
|
|
|
func TestAccessorsAccessGetFromArrayWithIntError(t *testing.T) {
|
|
current := Map{"name": "Tyler"}
|
|
|
|
assert.Nil(t, access(current, 0, nil, false))
|
|
}
|
|
|
|
func TestAccessorsGet(t *testing.T) {
|
|
current := Map{"name": "Tyler"}
|
|
|
|
assert.Equal(t, "Tyler", current.Get("name").Data())
|
|
}
|
|
|
|
func TestAccessorsAccessSetSingleField(t *testing.T) {
|
|
current := Map{"name": "Tyler"}
|
|
|
|
current.Set("name", "Mat")
|
|
current.Set("age", 29)
|
|
|
|
assert.Equal(t, current["name"], "Mat")
|
|
assert.Equal(t, current["age"], 29)
|
|
}
|
|
|
|
func TestAccessorsAccessSetSingleFieldNotExisting(t *testing.T) {
|
|
current := Map{
|
|
"first": "Tyler",
|
|
"last": "Bunnell",
|
|
}
|
|
|
|
current.Set("name", "Mat")
|
|
|
|
assert.Equal(t, current["name"], "Mat")
|
|
}
|
|
|
|
func TestAccessorsAccessSetDeep(t *testing.T) {
|
|
current := Map{
|
|
"name": Map{
|
|
"first": "Tyler",
|
|
"last": "Bunnell",
|
|
},
|
|
}
|
|
|
|
current.Set("name.first", "Mat")
|
|
current.Set("name.last", "Ryer")
|
|
|
|
assert.Equal(t, "Mat", current.Get("name.first").Data())
|
|
assert.Equal(t, "Ryer", current.Get("name.last").Data())
|
|
}
|
|
|
|
func TestAccessorsAccessSetDeepDeep(t *testing.T) {
|
|
current := Map{
|
|
"one": Map{
|
|
"two": Map{
|
|
"three": Map{
|
|
"four": 4},
|
|
},
|
|
},
|
|
}
|
|
|
|
current.Set("one.two.three.four", 5)
|
|
|
|
assert.Equal(t, 5, current.Get("one.two.three.four").Data())
|
|
}
|
|
|
|
func TestAccessorsAccessSetArray(t *testing.T) {
|
|
current := Map{
|
|
"names": []interface{}{"Tyler"},
|
|
}
|
|
current.Set("names[0]", "Mat")
|
|
|
|
assert.Equal(t, "Mat", current.Get("names[0]").Data())
|
|
}
|
|
|
|
func TestAccessorsAccessSetInsideArray(t *testing.T) {
|
|
current := Map{
|
|
"names": []interface{}{
|
|
Map{
|
|
"first": "Tyler",
|
|
"last": "Bunnell",
|
|
},
|
|
Map{
|
|
"first": "Capitol",
|
|
"last": "Bollocks",
|
|
},
|
|
},
|
|
}
|
|
|
|
current.Set("names[0].first", "Mat")
|
|
current.Set("names[0].last", "Ryer")
|
|
current.Set("names[1].first", "Captain")
|
|
current.Set("names[1].last", "Underpants")
|
|
|
|
assert.Equal(t, "Mat", current.Get("names[0].first").Data())
|
|
assert.Equal(t, "Ryer", current.Get("names[0].last").Data())
|
|
assert.Equal(t, "Captain", current.Get("names[1].first").Data())
|
|
assert.Equal(t, "Underpants", current.Get("names[1].last").Data())
|
|
}
|
|
|
|
func TestAccessorsSet(t *testing.T) {
|
|
current := Map{"name": "Tyler"}
|
|
|
|
current.Set("name", "Mat")
|
|
|
|
assert.Equal(t, "Mat", current.Get("name").data)
|
|
}
|