| 7 | ) |
| 8 | |
| 9 | func TestBasicSets(t *testing.T) { |
| 10 | c := newClient(t) |
| 11 | |
| 12 | addedMembers, err := c.SADD("s1", "m1", "m2") |
| 13 | assert.NoError(t, err) |
| 14 | assert.Equal(t, 2, len(addedMembers)) |
| 15 | assert.ElementsMatch(t, []string{"m1", "m2"}, addedMembers) |
| 16 | |
| 17 | addedMembers, err = c.SADD("s1", "m1", "m2", "m3") |
| 18 | assert.NoError(t, err) |
| 19 | assert.Equal(t, 1, len(addedMembers)) |
| 20 | assert.ElementsMatch(t, []string{"m3"}, addedMembers) |
| 21 | |
| 22 | ok, err := c.SISMEMBER("s1", "m1") |
| 23 | assert.NoError(t, err) |
| 24 | assert.True(t, ok) |
| 25 | |
| 26 | ok, err = c.SISMEMBER("s1", "nonexistentmember") |
| 27 | assert.NoError(t, err) |
| 28 | assert.False(t, ok) |
| 29 | |
| 30 | members, err := c.SMEMBERS("s1") |
| 31 | assert.NoError(t, err) |
| 32 | assert.ElementsMatch(t, []string{"m1", "m2", "m3"}, members) |
| 33 | |
| 34 | count, err := c.SCARD("s1") |
| 35 | assert.NoError(t, err) |
| 36 | assert.Equal(t, int64(3), count) |
| 37 | |
| 38 | members, err = c.SMEMBERS("nosuchset") |
| 39 | assert.NoError(t, err) |
| 40 | assert.ElementsMatch(t, []string{}, members) |
| 41 | |
| 42 | removedMembers, err := c.SREM("s1", "m1", "m2") |
| 43 | assert.NoError(t, err) |
| 44 | assert.ElementsMatch(t, []string{"m1", "m2"}, removedMembers) |
| 45 | |
| 46 | removedMembers, err = c.SREM("s1", "m1", "m2") |
| 47 | assert.NoError(t, err) |
| 48 | assert.ElementsMatch(t, []string{}, removedMembers) |
| 49 | |
| 50 | members, err = c.SMEMBERS("s1") |
| 51 | assert.NoError(t, err) |
| 52 | assert.ElementsMatch(t, []string{"m3"}, members) |
| 53 | |
| 54 | ok, err = c.SISMEMBER("s1", "m1") |
| 55 | assert.NoError(t, err) |
| 56 | assert.False(t, ok) |
| 57 | |
| 58 | count, err = c.SCARD("s1") |
| 59 | assert.NoError(t, err) |
| 60 | assert.Equal(t, int64(1), count) |
| 61 | |
| 62 | count, err = c.SCARD("nosuchkey") |
| 63 | assert.NoError(t, err) |
| 64 | assert.Equal(t, int64(0), count) |
| 65 | } |
| 66 | |