mirror of
https://github.com/rclone/rclone.git
synced 2024-11-29 12:04:11 +08:00
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)
|
|
}
|