Skip to content

Instantly share code, notes, and snippets.

@smaldini
Created December 23, 2014 17:00
Show Gist options
  • Save smaldini/2366f6871c772539ea0a to your computer and use it in GitHub Desktop.
Save smaldini/2366f6871c772539ea0a to your computer and use it in GitHub Desktop.
class ChronicleStreamSpec extends Specification {
def "ChronicleStream persists objects and notifies subscribers"() {
given:
"2 slaves and 1 master"
def putPromise = IOStreams.<Integer, String> persistentMapReader('journal')
.onPut()
.log('put')
.next()
def deletePromise = IOStreams.<Integer, String> persistentMapReader('journal')
.onRemove()
.log('remove')
.next()
def persistor = IOStreams.<Integer, String> persistentMap('journal', true)
def allPromise = persistor
.map { it.key() }
.log('all')
.toList(2)
def obj = 'test1'
when:
"an Object is persisted"
persistor[1] = obj
then:
"the Object was persisted"
persistor[1] == obj
when:
"an Object is removed"
persistor.remove(1)
then:
"the Object was removed"
putPromise.await().t2 == 'test1'
deletePromise.await() == 1
allPromise.await() == [1, 1]
persistor.size() == 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment