Skip to content

Commit

Permalink
add zset test case
Browse files Browse the repository at this point in the history
  • Loading branch information
harryzhuang committed Feb 6, 2022
1 parent 87ec9b9 commit c0a5fca
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ object RedisCacheImplicits {
protected val value = "value"
protected val other = "other"

protected val scoreValue: (Double, String) = (1.0, "value")
protected val otherScoreValue: (Double, String) = (2.0, "other")

protected def invocation = LazyInvocation

protected def policy: RecoveryPolicy = new RecoverWithDefault {}
Expand Down Expand Up @@ -74,6 +77,10 @@ object RedisCacheImplicits {
protected val set = cache.set[String]("key")
}

class MockedSortedSet extends MockedCache {
protected val set = cache.zset[String]("key")
}

class MockedMap extends MockedCache {
protected val field = "field"

Expand Down
70 changes: 70 additions & 0 deletions src/test/scala/play/api/cache/redis/impl/RedisSortedSetSpec.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package play.api.cache.redis.impl

import org.specs2.concurrent.ExecutionEnv
import org.specs2.mutable.Specification
import play.api.cache.redis._

class RedisSortedSetSpec(implicit ee: ExecutionEnv) extends Specification with ReducedMockito {
import Implicits._
import RedisCacheImplicits._
import org.mockito.ArgumentMatchers._

"Redis Set" should {

"add" in new MockedSortedSet {
connector.zsetAdd(anyString, anyVarArgs) returns 5L
set.add(scoreValue) must beEqualTo(set).await
set.add(scoreValue, otherScoreValue) must beEqualTo(set).await
there were one(connector).zsetAdd(key, scoreValue)
there were one(connector).zsetAdd(key, scoreValue, otherScoreValue)
}

"add (failing)" in new MockedSortedSet {
connector.zsetAdd(anyString, anyVarArgs) returns ex
set.add(scoreValue) must beEqualTo(set).await
there were one(connector).zsetAdd(key, scoreValue)
}

"remove" in new MockedSortedSet {
connector.zsetRemove(anyString, anyVarArgs) returns 1L
set.remove(value) must beEqualTo(set).await
set.remove(other, value) must beEqualTo(set).await
there were one(connector).zsetRemove(key, value)
there were one(connector).zsetRemove(key, other, value)
}

"remove (failing)" in new MockedSortedSet {
connector.zsetRemove(anyString, anyVarArgs) returns ex
set.remove(value) must beEqualTo(set).await
there were one(connector).zsetRemove(key, value)
}

"size" in new MockedSortedSet {
connector.zsetSize(key) returns 2L
set.size must beEqualTo(2L).await
}

"size (failing)" in new MockedSortedSet {
connector.zsetSize(key) returns ex
set.size must beEqualTo(0L).await
}

"empty set" in new MockedSortedSet {
connector.zsetSize(beEq(key)) returns 0L
set.isEmpty must beTrue.await
set.nonEmpty must beFalse.await
}

"non-empty set" in new MockedSortedSet {
connector.zsetSize(beEq(key)) returns 1L
set.isEmpty must beFalse.await
set.nonEmpty must beTrue.await
}

"empty/non-empty set (failing)" in new MockedSortedSet {
connector.zsetSize(beEq(key)) returns ex
set.isEmpty must beTrue.await
set.nonEmpty must beFalse.await
}
}
}

0 comments on commit c0a5fca

Please sign in to comment.