From bc2ee5793df2b1fefaed921ccc212db7c0fdb2d2 Mon Sep 17 00:00:00 2001 From: ticktock Date: Tue, 21 Sep 2010 15:35:18 -0400 Subject: [PATCH] making the persistent data sturctures non lazy in the ActorTest made things work...hmm seems strange though --- .../test/resources/config/server.properties | 1 + .../scala/VoldemortPersistentActorSuite.scala | 16 +++++--- ...oldemortPersistentDatastructureSuite.scala | 41 +++++++++++++++++++ 3 files changed, 52 insertions(+), 6 deletions(-) diff --git a/akka-persistence/akka-persistence-voldemort/src/test/resources/config/server.properties b/akka-persistence/akka-persistence-voldemort/src/test/resources/config/server.properties index 1e6af91e2d..8f5a8ff884 100644 --- a/akka-persistence/akka-persistence-voldemort/src/test/resources/config/server.properties +++ b/akka-persistence/akka-persistence-voldemort/src/test/resources/config/server.properties @@ -1 +1,2 @@ node.id=0 +enable.rebalancing=false diff --git a/akka-persistence/akka-persistence-voldemort/src/test/scala/VoldemortPersistentActorSuite.scala b/akka-persistence/akka-persistence-voldemort/src/test/scala/VoldemortPersistentActorSuite.scala index ae575e1e96..f76c370667 100644 --- a/akka-persistence/akka-persistence-voldemort/src/test/scala/VoldemortPersistentActorSuite.scala +++ b/akka-persistence/akka-persistence-voldemort/src/test/scala/VoldemortPersistentActorSuite.scala @@ -24,8 +24,8 @@ object BankAccountActor { } class BankAccountActor extends Transactor { - private lazy val accountState = VoldemortStorage.newMap(state) - private lazy val txnLog = VoldemortStorage.newVector(tx) + private val accountState = VoldemortStorage.newMap(state) + private val txnLog = VoldemortStorage.newVector(tx) import sjson.json.DefaultProtocol._ import sjson.json.JsonSerialization._ @@ -122,21 +122,25 @@ Spec with describe("successful debit") { it("should debit successfully") { + log.info("Succesful Debit starting") val bactor = actorOf[BankAccountActor] bactor.start val failer = actorOf[PersistentFailerActor] failer.start bactor !! Credit("a-123", 5000) + log.info("credited") bactor !! Debit("a-123", 3000, failer) - + log.info("debited") (bactor !! Balance("a-123")).get.asInstanceOf[Int] should equal(2000) - + log.info("balane matched") bactor !! Credit("a-123", 7000) + log.info("Credited") (bactor !! Balance("a-123")).get.asInstanceOf[Int] should equal(9000) - + log.info("Balance matched") bactor !! Debit("a-123", 8000, failer) + log.info("Debited") (bactor !! Balance("a-123")).get.asInstanceOf[Int] should equal(1000) - + log.info("Balance matched") (bactor !! LogSize).get.asInstanceOf[Int] should equal(7) (bactor !! Log(0, 7)).get.asInstanceOf[Iterable[String]].size should equal(7) } diff --git a/akka-persistence/akka-persistence-voldemort/src/test/scala/VoldemortPersistentDatastructureSuite.scala b/akka-persistence/akka-persistence-voldemort/src/test/scala/VoldemortPersistentDatastructureSuite.scala index 8c439f8d85..89e7426e03 100644 --- a/akka-persistence/akka-persistence-voldemort/src/test/scala/VoldemortPersistentDatastructureSuite.scala +++ b/akka-persistence/akka-persistence-voldemort/src/test/scala/VoldemortPersistentDatastructureSuite.scala @@ -43,4 +43,45 @@ class VoldemortPersistentDatastructureSuite extends FunSuite with ShouldMatchers } + test("Persistent Vectors function as expected") { + val name = UUID.newUuid.toString + val one = "one".getBytes + val two = "two".getBytes + atomic { + val vec = VoldemortStorage.getVector(name) + vec.add(one) + } + atomic { + val vec = VoldemortStorage.getVector(name) + vec.size should be(1) + vec.add(two) + } + atomic { + val vec = VoldemortStorage.getVector(name) + + vec.get(0) should be(one) + vec.get(1) should be(two) + vec.size should be(2) + vec.update(0, two) + } + + atomic { + val vec = VoldemortStorage.getVector(name) + vec.get(0) should be(two) + vec.get(1) should be(two) + vec.size should be(2) + vec.update(0, Array.empty[Byte]) + vec.update(1, Array.empty[Byte]) + } + + atomic { + val vec = VoldemortStorage.getVector(name) + vec.get(0) should be(Array.empty[Byte]) + vec.get(1) should be(Array.empty[Byte]) + vec.size should be(2) + } + + + } + } \ No newline at end of file