Newer
Older
import org.junit.Assert
import org.junit.Test
import org.xmlunit.builder.DiffBuilder
import unibz.cs.semint.kprime.adapter.service.XMLSerializerJacksonAdapter
import unibz.cs.semint.kprime.domain.ddl.Database
import unibz.cs.semint.kprime.domain.ddl.Schema
import unibz.cs.semint.kprime.domain.ddl.Table
import unibz.cs.semint.kprime.domain.dql.Attribute
import unibz.cs.semint.kprime.domain.dql.From
import unibz.cs.semint.kprime.domain.dql.Query
import unibz.cs.semint.kprime.usecase.XMLSerializeUseCase
import java.io.File
class XMLSerializerDatabaseTest {
@Test
fun test_database_serialize_with_two_empty_tables() {
// given
val serializer = XMLSerializeUseCase(XMLSerializerJacksonAdapter())
val database = Database()
database.id="iddb"
database.name="dbname"
database.schema= Schema()
database.schema.id="idschema"
database.schema.tables.add(Table())
database.schema.tables.add(Table())
// when
val serializedDatabase = serializer.serializeDatabase(database).ok
// then
val fileContent = File("target/test-classes/database_with_two_empty_tables.xml")
.readLines().joinToString(System.lineSeparator())
val myDiff = DiffBuilder.compare(serializedDatabase)
.ignoreWhitespace()
.withTest(fileContent)
.checkForSimilar().build()
Assert.assertFalse(myDiff.toString(), myDiff.hasDifferences());
}
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
@Test
fun test_database_serialize_with_mappings() {
// given
val serializer = XMLSerializeUseCase(XMLSerializerJacksonAdapter())
val database = Database()
database.id = "iddb"
database.name = "dbname"
database.schema = Schema()
database.schema.id = "idschema"
database.schema.tables.add(Table())
val query = Query()
val attr = Attribute()
attr.name="name"
query.select.attributes.add(attr)
val from = From()
from.tableName="people"
query.select.from.add(from)
database.mapping?.put("query1",query)
// when
val serializedDatabase = serializer.prettyDatabase(database).ok
// then
assertEquals("""
<database name="dbname" id="iddb">
<schema name="" id="idschema">
<tables>
<tables name="" id="" view="" condition="">
<columns/>
</tables>
</tables>
<constraints/>
</schema>
<mapping>
<query1>
<select>
<attributes>
<attributes name="name"/>
</attributes>
<from>
<from tableName="people" alias="" joinOn=""/>
</from>
<where condition=""/>
</select>
<union>
<selects/>
</union>
<minus>
<selects/>
</minus>
</query1>
</mapping>
</database>
""".trimIndent(),serializedDatabase)
}