Skip to content

Commit e55c8e3

Browse files
committed
test(bulk-model-sync): add test case for concept changes
1 parent a312a4c commit e55c8e3

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

bulk-model-sync-lib/src/commonTest/kotlin/org/modelix/model/sync/bulk/ModelImporterTest.kt

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,76 @@ class ModelImporterTest {
328328
assertEquals(expectedOperations, branch.getNumOfUsedOperationsByType())
329329
}
330330

331+
@Test
332+
@JsName("can_handle_concept_changes")
333+
fun `can handle concept changes`() {
334+
// language=json
335+
val initialData = """
336+
{
337+
"root": {
338+
"id": "node:001",
339+
"children": [
340+
{
341+
"id": "node:002",
342+
"concept": "ref:MyOldConcept",
343+
"children": [
344+
{
345+
"id": "child02",
346+
"references": {
347+
"myReference": "node:003"
348+
},
349+
"properties": {
350+
"myProperty": "myPropertyValue"
351+
}
352+
}
353+
]
354+
},
355+
{
356+
"id": "node:003"
357+
}
358+
]
359+
}
360+
}
361+
""".trimIndent().let { ModelData.fromJson(it) }
362+
363+
// language=json
364+
val expectedData = """
365+
{
366+
"root": {
367+
"id": "node:001",
368+
"children": [
369+
{
370+
"id": "node:002",
371+
"concept": "ref:MyNewConcept",
372+
"children": [
373+
{
374+
"id": "child02",
375+
"references": {
376+
"myReference": "node:003"
377+
},
378+
"properties": {
379+
"myProperty": "myPropertyValue"
380+
}
381+
}
382+
]
383+
},
384+
{
385+
"id": "node:003"
386+
}
387+
]
388+
}
389+
}
390+
""".trimIndent().let { ModelData.fromJson(it) }
391+
392+
val branch = createOTBranchFromModel(initialData)
393+
branch.importIncrementally(expectedData)
394+
395+
branch.runRead {
396+
val changedNode = branch.getRootNode().allChildren.first()
397+
assertEquals("ref:MyNewConcept", changedNode.getConceptReference().toString())
398+
}
399+
}
400+
331401
@Test
332402
@JsName("can_import_complex_model")
333403
fun `can import complex model`() {

0 commit comments

Comments
 (0)