Newer
Older
npedot
committed
package unibz.cs.semint.kprime.usecase
import org.junit.Test
import unibz.cs.semint.kprime.domain.ddl.Column
import unibz.cs.semint.kprime.domain.ddl.Table
import unibz.cs.semint.kprime.domain.dml.ChangeSet
import unibz.cs.semint.kprime.domain.dml.CreateColumn
npedot
committed
import unibz.cs.semint.kprime.usecase.common.SQLizeCreateUseCase
import unibz.cs.semint.kprime.usecase.common.UnSQLizeSelectUseCase
npedot
committed
import java.util.*
import kotlin.test.assertEquals
npedot
committed
class SQLizeCreateUseCaseTest {
@Test
fun test_add_columns() {
// given
val sqlize = SQLizeCreateUseCase()
val changeSet = ChangeSet()
val columnsToAdd = CreateColumn()
columnsToAdd.name = "table1"
val col1 = Column(name = "col1", id = "id1", dbname = "dbname1")
col1.dbtype = "varchar"
columnsToAdd.columns.add(col1)
val col2 = Column(name = "col2", id = "id1", dbname = "dbname1")
col2.dbtype = "varchar"
columnsToAdd.columns.add(col2)
npedot
committed
val createColumns = ArrayList<CreateColumn>()
createColumns.add(columnsToAdd)
changeSet.createColumn = createColumns
// when
val createCommands = sqlize.createCommands(changeSet)
// then
assertEquals(2,createCommands.size)
assertEquals("ALTER TABLE table1 ADD col1 VARCHAR NOT NULL",
createCommands[0])
assertEquals("ALTER TABLE table1 ADD col2 VARCHAR NOT NULL",
createCommands[1])
}
@Test
fun test_create_one_sql_mapping(){
val unsqlize = UnSQLizeSelectUseCase()
val sqlize = SQLizeCreateUseCase()
val changeset = ChangeSet()
var mapping = unsqlize.fromsql("myquery","SELECT DISTINCT * FROM Person")
assertTrue(mapping.select.distinct)
changeset.createMapping.add(mapping)
val createTableMappings = sqlize.createTableMappings(changeset)
assertEquals("""
CREATE TABLE public.myquery AS
SELECT DISTINCT *
FROM Person
LIMIT 10
""".trimIndent(),createTableMappings[0])
}