Sample code showing how to test Phantom code using an embedded Cassandra database managed by the phantom-sbt plugin.
While the Outworkers' blog post does
describe how to use phantom-sbt in your project it doesn't supply a working sample
project. This repo aims at bridging that gap with one project using a single table Cassandra database. I followed the
pattern from the original blog post that organizes the table into 2 classes and injecting the appropriate database (in
this case the test database). With that setup the SensorDatabaseTest first calls the table's store() followed by
getById(). Running it relies solely on sbt, which starts the embedded database in beforeAll() and shuts down the
session in afterAll():
$ sbt test
[info] Loading project definition from /Users/dam/Code/OSS/phantom-demo/project
[info] Set current project to root (in build file:/Users/dam/Code/OSS/phantom-demo/)
Initialize EmbeddedCassandra singleton.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[info] Starting Cassandra in embedded mode with default configuration.
[info] Compiling 3 Scala sources to /Users/dam/Code/OSS/phantom-demo/target/scala-2.11/classes...
[info] Compiling 3 Scala sources to /Users/dam/Code/OSS/phantom-demo/target/scala-2.11/test-classes...
[info] SensorDatabaseTest:
[info] - store/retrieve
[info] ScalaCheck
[info] Passed: Total 0, Failed 0, Errors 0, Passed 0
[info] ScalaTest
[info] Run completed in 6 seconds, 592 milliseconds.
[info] Total number of tests run: 1
[info] Suites: completed 1, aborted 0
[info] Tests: succeeded 1, failed 0, canceled 0, ignored 0, pending 0
[info] All tests passed.
[info] Passed: Total 1, Failed 0, Errors 0, Passed 1
[success] Total time: 13 s, completed Jul 3, 2016 5:28:26 PM