Skip to content

Commit b913720

Browse files
committed
Add a stamina-testkit-based test for spray-json
1 parent b45b29f commit b913720

File tree

6 files changed

+33
-8
lines changed

6 files changed

+33
-8
lines changed

project/Build.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ object Build extends Build {
4949

5050
lazy val json = Project("stamina-json", file("stamina-json"))
5151
.dependsOn(core)
52+
.dependsOn(testkit % "test")
5253
.settings(libSettings: _*)
5354
.settings(libraryDependencies ++=
5455
compile(
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
eyJjYXJ0Ijp7ImlkIjoxLCJpdGVtcyI6W3siaWQiOjEsIm5hbWUiOiJXb25rYSBCYXIiLCJwcmljZSI6NTAwfSx7ImlkIjoyLCJuYW1lIjoiRXZlcmxhc3RpbmcgR29ic3RvcHBlciIsInByaWNlIjo0ODl9XX0sInRpbWVzdGFtcCI6MTQ0NjM3NzE5OTk0M30=
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
eyJwYXltZW50TWV0aG9kIjoibWFlc3RybyJ9

stamina-json/src/test/scala/stamina/json/JsonPersisterSpec.scala

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package stamina
22
package json
33

4-
class JsonPersisterSpec extends StaminaJsonSpec {
4+
import stamina.testkit._
5+
6+
class JsonPersisterSpec extends StaminaJsonSpec
7+
with StaminaTestKit {
58
import JsonTestDomain._
69
import spray.json.lenses.JsonLenses._
710
import fommil.sjs.FamilyFormats._
@@ -56,4 +59,17 @@ class JsonPersisterSpec extends StaminaJsonSpec {
5659
v2Unpersisted.timestamp should (be > 0L and be < System.currentTimeMillis)
5760
}
5861
}
62+
63+
"a persister based on stamina-json and spray-json-shapeless" should {
64+
import fommil.sjs.FamilyFormats._
65+
66+
val persisters = Persisters(List(
67+
persister[CartCreatedV3]("cart-created"),
68+
persister[CheckoutStarted]("checkout-started")
69+
))
70+
71+
persisters.generateTestsFor(
72+
sample(v3CartCreated),
73+
sample(checkoutStarted))
74+
}
5975
}

stamina-json/src/test/scala/stamina/json/JsonTestDomain.scala

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,10 @@ object JsonTestDomain {
4141
val v3Item1 = ItemV3(1, "Wonka Bar", 500)
4242
val v3Item2 = ItemV3(2, "Everlasting Gobstopper", 489)
4343
val v3Cart = CartV3(1, List(v3Item1, v3Item2))
44-
val v3CartCreated = CartCreatedV3(v3Cart, System.currentTimeMillis)
44+
val v3CartCreated = CartCreatedV3(v3Cart, 1446377199943l)
45+
46+
// Others
47+
48+
case class CheckoutStarted(paymentMethod: String)
49+
val checkoutStarted = CheckoutStarted("maestro")
4550
}

stamina-testkit/src/test/scala/stamina/testkit/ScalatestTestGenerationSpec.scala

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,15 @@ class ScalatestTestGenerationSpec extends StaminaTestKitSpec {
1111

1212
import TestDomain._
1313

14-
case class ItemPersister(override val key: String) extends Persister[Item, V1](key) {
15-
def persist(t: Item): Persisted = Persisted(key, currentVersion, ByteString())
16-
def unpersist(p: Persisted): Item = item1
17-
}
18-
1914
"A spec generated by StaminaTestKit" should {
15+
case class ItemPersister(override val key: String) extends Persister[Item, V1](key) {
16+
def persist(t: Item): Persisted = Persisted(key, currentVersion, ByteString())
17+
def unpersist(p: Persisted): Item = item1
18+
}
19+
20+
val persisters = Persisters(ItemPersister("item1"))
21+
2022
val spec = new StaminaTestKit with WordSpecLike {
21-
val persisters = Persisters(ItemPersister("item1"))
2223
"TestDomainSerialization" should {
2324
persisters.generateTestsFor(
2425
sample(item1),

0 commit comments

Comments
 (0)