MCPcopy Create free account
hub / github.com/dbProjectRED/redimo.go / TestAtomicOps

Function TestAtomicOps

strings_test.go:95–143  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

93}
94
95func TestAtomicOps(t *testing.T) {
96 c := newClient(t)
97 err := c.MSET(map[string]Value{
98 "k1": StringValue{"v1"},
99 "k2": StringValue{"v2"},
100 "k3": StringValue{"v3"},
101 })
102 assert.NoError(t, err)
103 values, err := c.MGET([]string{"k1", "k2", "k3"}...)
104 assert.NoError(t, err)
105 assert.Len(t, values, 3)
106 assert.Equal(t, "v1", values["k1"].String())
107 assert.Equal(t, "v2", values["k2"].String())
108 assert.Equal(t, "v3", values["k3"].String())
109
110 err = c.MSET(map[string]Value{"k3": StringValue{"v3.1"}, "k4": StringValue{"v4"}})
111 assert.NoError(t, err)
112
113 v, err := c.GET("k3")
114 assert.NoError(t, err)
115 assert.Equal(t, "v3.1", v.String())
116
117 values, err = c.MGET("k3", "k4")
118 assert.NoError(t, err)
119 assert.Len(t, values, 2)
120 assert.Equal(t, "v3.1", values["k3"].String())
121 assert.Equal(t, "v4", values["k4"].String())
122
123 ok, err := c.MSETNX(map[string]Value{"k3": StringValue{"v3.2"}, "k5": StringValue{"v5"}})
124 assert.NoError(t, err)
125 assert.False(t, ok)
126
127 values, err = c.MGET([]string{"k3", "k5"}...)
128 assert.NoError(t, err)
129 assert.Len(t, values, 2)
130 assert.Equal(t, "v3.1", values["k3"].String())
131 assert.False(t, values["k5"].Present())
132 assert.NoError(t, err)
133
134 ok, err = c.MSETNX(map[string]Value{"k5": StringValue{"v5"}, "k6": StringValue{"v6"}})
135 assert.NoError(t, err)
136 assert.True(t, ok)
137
138 values, err = c.MGET("k5", "k6")
139 assert.NoError(t, err)
140 assert.Len(t, values, 2)
141 assert.Equal(t, "v5", values["k5"].String())
142 assert.Equal(t, "v6", values["k6"].String())
143}

Callers

nothing calls this directly

Calls 7

newClientFunction · 0.85
MSETMethod · 0.80
MGETMethod · 0.80
GETMethod · 0.80
MSETNXMethod · 0.80
PresentMethod · 0.80
StringMethod · 0.45

Tested by

no test coverage detected