Skip to content
Snippets Groups Projects
Commit a6cad567 authored by npedot's avatar npedot
Browse files

adds drop table, drop constraint

parent 4fbbb10e
No related branches found
No related tags found
No related merge requests found
......@@ -120,6 +120,24 @@ class Schema () {
return this
}
fun dropTable(commandArgs:String) : Schema {
var tableNames = commandArgs.split(" ")
for (tableName in tableNames) {
var table = table(tableName)
tables().remove(table)
}
return this
}
fun dropConstraint(commnadArgs:String) : Schema {
var constraintNames = commnadArgs.split(" ")
for (constraintName in constraintNames) {
var constraint = constraint(constraintName)
constraints().remove(constraint)
}
return this
}
fun addFunctional(tableName:String, setExpression: String): Schema {
val constraintsToAdd = Constraint.set(setExpression)
for (constraint in constraintsToAdd) {
......
......@@ -3,9 +3,7 @@ package unibz.cs.semint.kprime.domain
import junit.framework.TestCase.assertEquals
import junit.framework.TestCase.assertTrue
import org.junit.Test
import unibz.cs.semint.kprime.domain.ddl.Column
import unibz.cs.semint.kprime.domain.ddl.Constraint
import unibz.cs.semint.kprime.domain.ddl.Schema
import unibz.cs.semint.kprime.domain.ddl.*
class SchemaTest {
......@@ -221,4 +219,30 @@ class SchemaTest {
assertEquals(1,schema.doubleIncs().size)
}
@Test
fun test_dropTable() {
// given
var schema = Schema()
schema.addTable("person:name,surname")
assertEquals(1,schema.tables().size)
// when
schema.dropTable("person")
// then
assertEquals(0, schema.tables().size)
}
@Test
fun test_dropConstraint() {
// given
var schema = Schema()
schema.addKey("person:id")
schema.addForeignKey("person:id-->employee:id")
assertEquals(2,schema.constraints().size)
// when
schema.dropConstraint("person.primaryKey")
schema.dropConstraint("person_employee.foreignKey")
// then
assertEquals(0,schema.constraints().size)
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment