github.com/therealbill/libredis@v0.0.0-20161227004305-7d50abda5ccf/client/sets_test.go (about) 1 package client 2 3 import ( 4 "testing" 5 ) 6 7 func TestSAdd(t *testing.T) { 8 r.Del("key") 9 if n, err := r.SAdd("key", "value"); err != nil { 10 t.Error(err) 11 } else if n != 1 { 12 t.Fail() 13 } 14 if n, _ := r.SAdd("key", "value"); n != 0 { 15 t.Fail() 16 } 17 } 18 19 func TestSCard(t *testing.T) { 20 r.Del("key") 21 r.SAdd("key", "value") 22 if n, err := r.SCard("key"); err != nil { 23 t.Error(err) 24 } else if n != 1 { 25 t.Fail() 26 } 27 } 28 29 func TestSDiff(t *testing.T) { 30 r.Del("key1", "key2", "key3") 31 r.SAdd("key1", "a", "b", "c", "d") 32 r.SAdd("key2", "c") 33 r.SAdd("key3", "a", "c", "e") 34 if result, err := r.SDiff("key1", "key2", "key3"); err != nil { 35 t.Error(err) 36 } else if len(result) != 2 { 37 t.Fail() 38 } 39 } 40 41 func TestSDiffStore(t *testing.T) { 42 r.Del("key1", "key2", "key3") 43 r.SAdd("key1", "a", "b", "c", "d") 44 r.SAdd("key2", "c") 45 r.SAdd("key3", "a", "c", "e") 46 if n, err := r.SDiffStore("key", "key1", "key2", "key3"); err != nil { 47 t.Error(err) 48 } else if n != 2 { 49 t.Fail() 50 } 51 } 52 53 func TestSInter(t *testing.T) { 54 r.Del("key1", "key2", "key3") 55 r.SAdd("key1", "a", "b", "c", "d") 56 r.SAdd("key2", "c") 57 r.SAdd("key3", "a", "c", "e") 58 if result, err := r.SInter("key1", "key2", "key3"); err != nil { 59 t.Error(err) 60 } else if len(result) != 1 { 61 t.Fail() 62 } 63 } 64 65 func TestSInterStore(t *testing.T) { 66 r.Del("key1", "key2", "key3") 67 r.SAdd("key1", "a", "b", "c", "d") 68 r.SAdd("key2", "c") 69 r.SAdd("key3", "a", "c", "e") 70 if n, err := r.SInterStore("key", "key1", "key2", "key3"); err != nil { 71 t.Error(err) 72 } else if n != 1 { 73 t.Fail() 74 } 75 } 76 77 func TestSIsMember(t *testing.T) { 78 r.Del("key") 79 r.SAdd("key", "value") 80 if b, err := r.SIsMember("key", "value"); err != nil { 81 t.Error(err) 82 } else if !b { 83 t.Fail() 84 } 85 if b, _ := r.SIsMember("key", "member"); b { 86 t.Fail() 87 } 88 } 89 90 func TestSMembers(t *testing.T) { 91 r.Del("key") 92 r.SAdd("key", "value") 93 if result, err := r.SMembers("key"); err != nil { 94 t.Error(err) 95 } else if len(result) != 1 { 96 t.Fail() 97 } else if result[0] != "value" { 98 t.Fail() 99 } 100 } 101 102 func TestSMove(t *testing.T) { 103 r.Del("key", "key1") 104 r.SAdd("key", "value") 105 if b, err := r.SMove("key", "key1", "value"); err != nil { 106 t.Error(err) 107 } else if !b { 108 t.Fail() 109 } 110 } 111 112 func TestSPop(t *testing.T) { 113 r.Del("key") 114 r.SAdd("key", "value") 115 if item, err := r.SPop("key"); err != nil { 116 t.Error(err) 117 } else if item == nil { 118 t.Fail() 119 } else if string(item) != "value" { 120 t.Fail() 121 } 122 if item, _ := r.SPop("key"); item != nil { 123 t.Fail() 124 } 125 } 126 127 func TestSRandMember(t *testing.T) { 128 r.Del("key") 129 r.SAdd("key", "one", "two", "three") 130 if m, err := r.SRandMember("key"); err != nil { 131 t.Error(err) 132 } else if m == nil { 133 t.Fail() 134 } 135 if result, err := r.SRandMemberCount("key", 2); err != nil { 136 t.Error(err) 137 } else if len(result) != 2 { 138 t.Fail() 139 } 140 if result, err := r.SRandMemberCount("key", -5); err != nil { 141 t.Error(err) 142 } else if len(result) != 5 { 143 t.Fail() 144 } 145 } 146 147 func TestSRem(t *testing.T) { 148 r.Del("key") 149 r.SAdd("key", "one", "two", "three") 150 if n, err := r.SRem("key", "one", "four"); err != nil { 151 t.Error(err) 152 } else if n != 1 { 153 t.Fail() 154 } 155 } 156 157 func TestSUnion(t *testing.T) { 158 r.Del("key1", "key2", "key3") 159 r.SAdd("key1", "a", "b", "c", "d") 160 r.SAdd("key2", "c") 161 r.SAdd("key3", "a", "c", "e") 162 if result, err := r.SUnion("key1", "key2", "key3"); err != nil { 163 t.Error(err) 164 } else if len(result) != 5 { 165 t.Fail() 166 } 167 } 168 169 func TestSUnionStore(t *testing.T) { 170 r.Del("key1", "key2", "key3") 171 r.SAdd("key1", "a", "b", "c", "d") 172 r.SAdd("key2", "c") 173 r.SAdd("key3", "a", "c", "e") 174 if n, err := r.SUnionStore("key", "key1", "key2", "key3"); err != nil { 175 t.Error(err) 176 } else if n != 5 { 177 t.Fail() 178 } 179 } 180 181 func TestSScan(t *testing.T) { 182 r.Del("key") 183 r.SAdd("key", "one", "two", "three") 184 if _, list, err := r.SScan("key", 0, "", 0); err != nil { 185 t.Error(err) 186 } else if len(list) == 0 { 187 t.Fail() 188 } 189 }