testcase for MongoStorage : needs a running Mongo instance
This commit is contained in:
parent
b4bb7a057d
commit
cbb1dc1de2
1 changed files with 122 additions and 0 deletions
122
kernel/src/test/scala/MongoStorageSpec.scala
Normal file
122
kernel/src/test/scala/MongoStorageSpec.scala
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
package se.scalablesolutions.akka.kernel.state
|
||||
|
||||
import junit.framework.TestCase
|
||||
|
||||
import org.junit.{Test, Before}
|
||||
import org.junit.Assert._
|
||||
|
||||
class MongoStorageSpec extends TestCase {
|
||||
|
||||
val changeSet = new scala.collection.mutable.ArrayBuffer[AnyRef]
|
||||
|
||||
override def setUp = {
|
||||
MongoStorage.coll.drop
|
||||
}
|
||||
|
||||
@Test
|
||||
def testVectorInsertForTransactionId = {
|
||||
changeSet += "debasish" // string
|
||||
changeSet += List(1, 2, 3) // Scala List
|
||||
val l = new java.util.ArrayList[Int] // Java List
|
||||
l.add(100)
|
||||
l.add(200)
|
||||
changeSet += l
|
||||
MongoStorage.insertVectorStorageEntriesFor("U-A1", changeSet.toList)
|
||||
assertEquals(
|
||||
3,
|
||||
MongoStorage.getVectorStorageSizeFor("U-A1"))
|
||||
changeSet.clear
|
||||
|
||||
// changeSet should be reinitialized
|
||||
changeSet += List(12, 23, 45)
|
||||
changeSet += "maulindu"
|
||||
MongoStorage.insertVectorStorageEntriesFor("U-A1", changeSet.toList)
|
||||
assertEquals(
|
||||
5,
|
||||
MongoStorage.getVectorStorageSizeFor("U-A1"))
|
||||
|
||||
// add more to the same changeSet
|
||||
changeSet += "ramanendu"
|
||||
changeSet += Map(1 -> "dg", 2 -> "mc")
|
||||
|
||||
// add for a diff transaction
|
||||
MongoStorage.insertVectorStorageEntriesFor("U-A2", changeSet.toList)
|
||||
assertEquals(
|
||||
4,
|
||||
MongoStorage.getVectorStorageSizeFor("U-A2"))
|
||||
|
||||
// previous transaction change set should remain same
|
||||
assertEquals(
|
||||
5,
|
||||
MongoStorage.getVectorStorageSizeFor("U-A1"))
|
||||
|
||||
// test single element entry
|
||||
MongoStorage.insertVectorStorageEntryFor("U-A1", Map(1->1, 2->4, 3->9))
|
||||
assertEquals(
|
||||
6,
|
||||
MongoStorage.getVectorStorageSizeFor("U-A1"))
|
||||
}
|
||||
|
||||
@Test
|
||||
def testVectorFetchForKeys = {
|
||||
|
||||
// initially everything 0
|
||||
assertEquals(
|
||||
0,
|
||||
MongoStorage.getVectorStorageSizeFor("U-A2"))
|
||||
|
||||
assertEquals(
|
||||
0,
|
||||
MongoStorage.getVectorStorageSizeFor("U-A1"))
|
||||
|
||||
// get some stuff
|
||||
changeSet += "debasish"
|
||||
changeSet += List(12, 13, 14)
|
||||
MongoStorage.insertVectorStorageEntriesFor("U-A1", changeSet.toList)
|
||||
|
||||
assertEquals(
|
||||
2,
|
||||
MongoStorage.getVectorStorageSizeFor("U-A1"))
|
||||
|
||||
assertEquals(
|
||||
"debasish",
|
||||
MongoStorage.getVectorStorageEntryFor("U-A1", 0).asInstanceOf[String])
|
||||
|
||||
assertEquals(
|
||||
List(12, 13, 14),
|
||||
MongoStorage.getVectorStorageEntryFor("U-A1", 1).asInstanceOf[List[Int]])
|
||||
|
||||
changeSet.clear
|
||||
changeSet += Map(1->1, 2->4, 3->9)
|
||||
changeSet += BigInt(2310)
|
||||
val l = new java.util.ArrayList[Int]
|
||||
l.add(100)
|
||||
l.add(200)
|
||||
l.add(300)
|
||||
changeSet += l
|
||||
MongoStorage.insertVectorStorageEntriesFor("U-A1", changeSet.toList)
|
||||
|
||||
assertEquals(
|
||||
5,
|
||||
MongoStorage.getVectorStorageSizeFor("U-A1"))
|
||||
|
||||
val r =
|
||||
MongoStorage.getVectorStorageRangeFor("U-A1", Some(1), None, 3)
|
||||
|
||||
assertEquals(3, r.size)
|
||||
assertEquals(List(12, 13, 14), r(0).asInstanceOf[List[Int]])
|
||||
}
|
||||
|
||||
@Test
|
||||
def testVectorFetchForNonExistentKeys = {
|
||||
try {
|
||||
MongoStorage.getVectorStorageEntryFor("U-A1", 1)
|
||||
fail("should throw an exception")
|
||||
} catch {case e: Predef.NoSuchElementException => {}}
|
||||
|
||||
try {
|
||||
MongoStorage.getVectorStorageRangeFor("U-A1", Some(2), None, 12)
|
||||
fail("should throw an exception")
|
||||
} catch {case e: Predef.NoSuchElementException => {}}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue