92 lines
1.4 KiB
Go
92 lines
1.4 KiB
Go
|
package configmap
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
_ Mapper = (Simple)(nil)
|
||
|
_ Getter = (Simple)(nil)
|
||
|
_ Setter = (Simple)(nil)
|
||
|
)
|
||
|
|
||
|
func TestConfigMapGet(t *testing.T) {
|
||
|
m := New()
|
||
|
|
||
|
value, found := m.Get("config1")
|
||
|
assert.Equal(t, "", value)
|
||
|
assert.Equal(t, false, found)
|
||
|
|
||
|
value, found = m.Get("config2")
|
||
|
assert.Equal(t, "", value)
|
||
|
assert.Equal(t, false, found)
|
||
|
|
||
|
m1 := Simple{
|
||
|
"config1": "one",
|
||
|
}
|
||
|
|
||
|
m.AddGetter(m1)
|
||
|
|
||
|
value, found = m.Get("config1")
|
||
|
assert.Equal(t, "one", value)
|
||
|
assert.Equal(t, true, found)
|
||
|
|
||
|
value, found = m.Get("config2")
|
||
|
assert.Equal(t, "", value)
|
||
|
assert.Equal(t, false, found)
|
||
|
|
||
|
m2 := Simple{
|
||
|
"config1": "one2",
|
||
|
"config2": "two2",
|
||
|
}
|
||
|
|
||
|
m.AddGetter(m2)
|
||
|
|
||
|
value, found = m.Get("config1")
|
||
|
assert.Equal(t, "one", value)
|
||
|
assert.Equal(t, true, found)
|
||
|
|
||
|
value, found = m.Get("config2")
|
||
|
assert.Equal(t, "two2", value)
|
||
|
assert.Equal(t, true, found)
|
||
|
|
||
|
}
|
||
|
|
||
|
func TestConfigMapSet(t *testing.T) {
|
||
|
m := New()
|
||
|
|
||
|
m1 := Simple{
|
||
|
"config1": "one",
|
||
|
}
|
||
|
m2 := Simple{
|
||
|
"config1": "one2",
|
||
|
"config2": "two2",
|
||
|
}
|
||
|
|
||
|
m.AddSetter(m1).AddSetter(m2)
|
||
|
|
||
|
m.Set("config2", "potato")
|
||
|
|
||
|
assert.Equal(t, Simple{
|
||
|
"config1": "one",
|
||
|
"config2": "potato",
|
||
|
}, m1)
|
||
|
assert.Equal(t, Simple{
|
||
|
"config1": "one2",
|
||
|
"config2": "potato",
|
||
|
}, m2)
|
||
|
|
||
|
m.Set("config1", "beetroot")
|
||
|
|
||
|
assert.Equal(t, Simple{
|
||
|
"config1": "beetroot",
|
||
|
"config2": "potato",
|
||
|
}, m1)
|
||
|
assert.Equal(t, Simple{
|
||
|
"config1": "beetroot",
|
||
|
"config2": "potato",
|
||
|
}, m2)
|
||
|
}
|