]> git.saurik.com Git - redis.git/blob - client-libraries/scala/src/test/scala/com/redis/operations/SetOperationsSpec.scala
78e6a5f2cac2ab79bcffec432e73e3102325a808
[redis.git] / client-libraries / scala / src / test / scala / com / redis / operations / SetOperationsSpec.scala
1 import org.specs._
2 import com.redis._
3
4 import org.specs.mock.Mockito
5 import org.mockito.Mock._
6 import org.mockito.Mockito._
7 import org.mockito.Mockito.doNothing
8
9 object SetOperationsSpec extends Specification with Mockito {
10
11 "Redis Client Set Operations" should {
12 var client: RedisTestClient = null
13 var connection: Connection = null
14
15 doBefore{
16 connection = mock[Connection]
17 client = new RedisTestClient(connection)
18 }
19
20 "add a member to a set" in {
21 connection.readBoolean returns true
22 client.setAdd("set", "value") must beTrue
23 connection.write("SADD set 5\r\nvalue\r\n") was called
24 }
25
26 "remove an member from a set" in {
27 connection.readBoolean returns true
28 client.setDelete("set", "value") must beTrue
29 connection.write("SREM set 5\r\nvalue\r\n") was called
30 }
31
32 "return the number of elements in the set" in {
33 connection.readInt returns 5
34 client.setCount("set") mustEqual 5
35 connection.write("SCARD set\r\n") was called
36 }
37
38 "return all the members from a set" in {
39 val setResult = Set("one", "two", "three")
40 connection.readSet returns setResult
41 client.setMembers("set") mustEqual setResult
42 connection.write("SMEMBERS set\r\n") was called
43 }
44
45 "pop an element from the set" in {
46 connection.readString returns "one"
47 client.setPop("set") mustEqual "one"
48 connection.write("SPOP set\r\n") was called
49 }
50
51 "move an element from one set to another" in {
52 connection.readBoolean returns true
53 client.setMove("set", "toset", "value") mustEqual true
54 connection.write("SMOVE set toset value\r\n") was called
55 }
56
57 "tell if member exists on the set" in {
58 connection.readBoolean returns true
59 client.setMemberExists("set", "value") mustEqual true
60 connection.write("SISMEMBER set 5\r\nvalue\r\n") was called
61 }
62
63 "return the intersection between N sets" in {
64 val setResult = Set("one", "two", "three")
65 connection.readSet returns setResult
66 client.setIntersect("set", "otherset", "another") mustEqual setResult
67 connection.write("SINTER set otherset another\r\n") was called
68 }
69
70 "return the intersection between N sets and store it a new one" in {
71 connection.readBoolean returns true
72 client.setInterStore("set", "oneset", "twoset") mustEqual true
73 connection.write("SINTERSTORE set oneset twoset\r\n") was called
74 }
75
76 "return the difference between N sets" in {
77 val setResult = Set("one", "two", "three")
78 connection.readSet returns setResult
79 client.setDiff("set", "oneset", "twoset") mustEqual setResult
80 connection.write("SDIFF set oneset twoset\r\n") was called
81 }
82
83 "return the difference between N sets and store it in a new one" in {
84 connection.readBoolean returns true
85 client.setDiffStore("newset", "oneset", "twoset") mustEqual true
86 connection.write("SDIFFSTORE newset oneset twoset\r\n") was called
87 }
88
89 "return the union between N sets" in {
90 val setResult = Set("one", "two", "three")
91 connection.readSet returns setResult
92 client.setUnion("set", "oneset", "twoset") mustEqual setResult
93 connection.write("SUNION set oneset twoset\r\n") was called
94 }
95
96 "return the union between N sets and store it in a new one" in {
97 connection.readBoolean returns true
98 client.setUnionStore("set", "oneset", "twoset") mustEqual true
99 connection.write("SUNIONSTORE set oneset twoset\r\n") was called
100 }
101 }
102 }