1package repository
 2
 3import (
 4	"testing"
 5	"time"
 6
 7	"github.com/stretchr/testify/require"
 8)
 9
10func TestMergedConfig(t *testing.T) {
11	local := NewMemConfig()
12	global := NewMemConfig()
13	merged := mergeConfig(local, global)
14
15	require.NoError(t, global.StoreBool("bool", true))
16	require.NoError(t, global.StoreString("string", "foo"))
17	require.NoError(t, global.StoreTimestamp("timestamp", time.Unix(1234, 0)))
18
19	val1, err := merged.ReadBool("bool")
20	require.NoError(t, err)
21	require.Equal(t, val1, true)
22
23	val2, err := merged.ReadString("string")
24	require.NoError(t, err)
25	require.Equal(t, val2, "foo")
26
27	val3, err := merged.ReadTimestamp("timestamp")
28	require.NoError(t, err)
29	require.Equal(t, val3, time.Unix(1234, 0))
30
31	require.NoError(t, local.StoreBool("bool", false))
32	require.NoError(t, local.StoreString("string", "bar"))
33	require.NoError(t, local.StoreTimestamp("timestamp", time.Unix(5678, 0)))
34
35	val1, err = merged.ReadBool("bool")
36	require.NoError(t, err)
37	require.Equal(t, val1, false)
38
39	val2, err = merged.ReadString("string")
40	require.NoError(t, err)
41	require.Equal(t, val2, "bar")
42
43	val3, err = merged.ReadTimestamp("timestamp")
44	require.NoError(t, err)
45	require.Equal(t, val3, time.Unix(5678, 0))
46
47	all, err := merged.ReadAll("")
48	require.NoError(t, err)
49	require.Equal(t, all, map[string]string{
50		"bool":      "false",
51		"string":    "bar",
52		"timestamp": "5678",
53	})
54}