Skip to content

Commit fb0c257

Browse files
test changed properties for reference binding
1 parent 5fdd30e commit fb0c257

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

ktorm-core/src/test/kotlin/org/ktorm/entity/EntityTest.kt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,28 @@ class EntityTest : BaseTest() {
375375
assert(p2.flushChanges() == 1)
376376
}
377377

378+
@Test
379+
fun testChangedPropertiesForReferenceBinding() {
380+
val e = database.employees.find { it.id eq 1 } ?: throw AssertionError()
381+
e.name = "Vincent"
382+
e.job = "Senior Engineer"
383+
e.job = "Expert Engineer"
384+
e.manager = database.employees.find { it.id eq 2 }
385+
e.manager = database.employees.find { it.id eq 2 }
386+
e.salary = 999999
387+
e.department = database.departments.find { it.id eq 2 } ?: throw AssertionError()
388+
e.department = database.departments.find { it.id eq 2 } ?: throw AssertionError()
389+
390+
val changed = e.changedProperties
391+
assert(changed.size == 5)
392+
assert(changed["name"] == "vince")
393+
assert(changed["job"] == "engineer")
394+
assert(changed["manager"].toString() == "Employee(id=null)")
395+
assert(changed["salary"] == 100L)
396+
assert(changed["department"].toString() == "Department(id=1)")
397+
assert(e.flushChanges() == 1)
398+
}
399+
378400
@Test
379401
fun testHasColumnValue() {
380402
val p1 = Parent()

0 commit comments

Comments
 (0)