| 185 | func (c stringCodec) CodecID() string { return c.value } |
| 186 | |
| 187 | func TestMultipleInMemoryClient(t *testing.T) { |
| 188 | logger := log.NewNopLogger() |
| 189 | foo, err := NewClient(Config{ |
| 190 | Store: "inmemory", |
| 191 | }, stringCodec{value: "foo"}, prometheus.NewRegistry(), logger) |
| 192 | require.NoError(t, err) |
| 193 | bar, err := NewClient(Config{ |
| 194 | Store: "inmemory", |
| 195 | }, stringCodec{value: "bar"}, prometheus.NewRegistry(), logger) |
| 196 | require.NoError(t, err) |
| 197 | |
| 198 | require.NoError(t, foo.CAS(context.TODO(), "foo", func(interface{}) (out interface{}, retry bool, err error) { return "foo", false, nil })) |
| 199 | fooKey, err := foo.Get(ctx, "foo") |
| 200 | require.NoError(t, err) |
| 201 | require.Equal(t, "foo", fooKey.(string)) |
| 202 | |
| 203 | require.NoError(t, bar.CAS(context.TODO(), "bar", func(interface{}) (out interface{}, retry bool, err error) { return "bar", false, nil })) |
| 204 | barKey, err := bar.Get(ctx, "bar") |
| 205 | require.NoError(t, err) |
| 206 | require.Equal(t, "bar", barKey.(string)) |
| 207 | } |