Skip to content

Commit

Permalink
Update event wasn't fired on Entity.flush()
Browse files Browse the repository at this point in the history
  • Loading branch information
Tapac committed Jan 11, 2020
1 parent f50fcae commit 762ba32
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ open class Entity<ID:Comparable<ID>>(val id: EntityID<ID>) {
storeWrittenValues()
}

TransactionManager.current().registerChange(klass, id, EntityChangeType.Updated)
return true
}
return false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,12 @@ object EntityHookTestData {

class EntityHookTest: DatabaseTestsBase() {

private fun<T> trackChanges(statement: Transaction.() -> T): Triple<T, Collection<EntityChange>, String> {
private fun <T> trackChanges(statement: Transaction.() -> T): Triple<T, Collection<EntityChange>, String> {
val alreadyChanged = TransactionManager.current().registeredChanges().size
return transaction {
val result = statement()
flushCache()
Triple(result,registeredChanges().drop(alreadyChanged), id)
val result = statement()
flushCache()
Triple(result, registeredChanges().drop(alreadyChanged), id)
}
}

Expand Down Expand Up @@ -270,4 +270,32 @@ class EntityHookTest: DatabaseTestsBase() {
}
}
}

@Test fun `single entity flush should trigger events`() {
withTables(EntityHookTestData.User.table) {
val (user, events, _) = trackChanges {
EntityHookTestData.User.new {
name = "John"
age = 30
}.apply { flush() }
}

assertEquals(1, events.size)
val createEvent = events.single()
assertEquals(user.id, createEvent.entityId)
assertEquals(EntityChangeType.Created, createEvent.changeType)

val (_, events2, _) = trackChanges {
user.name = "Carl"
user.flush()
}

assertEquals("Carl", user.name)
assertEquals(1, events2.size)
val updateEvent = events2.single()
assertEquals(user.id, updateEvent.entityId)
assertEquals(EntityChangeType.Updated, updateEvent.changeType)
}

}

0 comments on commit 762ba32

Please sign in to comment.