From 53e066b9f801eb52579d001d27d38148043255d5 Mon Sep 17 00:00:00 2001 From: npedot <nicola.pedot@gmail.com> Date: Wed, 15 Jan 2020 12:33:49 +0100 Subject: [PATCH] adds sakila scenario integration test --- README.md | 10 +++++++ .../scenario/PersonVSplitScenario.kt | 27 +++++++++++++++++-- .../scenario/SakilaScenarioTI.kt | 16 +++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 src/test/kotlin/unibz.cs.semint.kprime/scenario/SakilaScenarioTI.kt diff --git a/README.md b/README.md index d57ecf8..ce37a47 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,16 @@ mvn test + +## test integration (manual invocation) + +for person vplit scenario: + + mvn -Dtest=PersonVSplitScenarioTI test + +for sakila scenario (it requires postgres db access and configuration): + + mvn -Dtest=SakilaScenarioTI test ## edit diff --git a/src/main/kotlin/unibz.cs.semint.kprime/scenario/PersonVSplitScenario.kt b/src/main/kotlin/unibz.cs.semint.kprime/scenario/PersonVSplitScenario.kt index 58eab26..4a330a0 100644 --- a/src/main/kotlin/unibz.cs.semint.kprime/scenario/PersonVSplitScenario.kt +++ b/src/main/kotlin/unibz.cs.semint.kprime/scenario/PersonVSplitScenario.kt @@ -18,9 +18,9 @@ class PersonVSplitScenario { personTable.name= "person" val colSSN = Column("SSN", "id.SSN", "dbname.SSN") personTable.columns.add(colSSN) - val colT = Column("T", "id.SSN", "dbname.SSN") + val colT = Column("T", "id.T", "dbname.T") personTable.columns.add(colT) - val colS = Column("S", "id.SSN", "dbname.SSN") + val colS = Column("S", "id.S", "dbname.S") personTable.columns.add(colS) db.schema.tables.add(personTable) val primaryConstraint = Constraint() @@ -52,6 +52,29 @@ class PersonVSplitScenario { } private fun apply(personMetadata: Database, detected: UseCaseResult<Database>): UseCaseResult<Database>{ + // pure person + val table = Table() + table.name= "pure_person" + personMetadata.schema.tables.add(table) + val colSSN = Column("SSN", "id.SSN", "dbname.SSN") + table.columns.add(colSSN) + + // person with only telephone + val tableWithT = Table() + tableWithT.name= "person_with_T" + personMetadata.schema.tables.add(tableWithT) + val colT = Column("T", "id.T", "dbname.T") + tableWithT.columns.add(colSSN) + tableWithT.columns.add(colT) + + // person with only telephone + val tableWithS = Table() + tableWithS.name= "person_with_S" + personMetadata.schema.tables.add(tableWithS) + val colS = Column("S", "id.S", "dbname.S") + tableWithS.columns.add(colSSN) + tableWithS.columns.add(colS) + return UseCaseResult("done apply", personMetadata) } } \ No newline at end of file diff --git a/src/test/kotlin/unibz.cs.semint.kprime/scenario/SakilaScenarioTI.kt b/src/test/kotlin/unibz.cs.semint.kprime/scenario/SakilaScenarioTI.kt new file mode 100644 index 0000000..e8181a7 --- /dev/null +++ b/src/test/kotlin/unibz.cs.semint.kprime/scenario/SakilaScenarioTI.kt @@ -0,0 +1,16 @@ +package unibz.cs.semint.kprime.scenario + +import org.junit.Test + +class SakilaScenarioTI { + + @Test + fun test_sakila_scenario() { + // given + val sakilaScenario = SakilaScenario() + // when + sakilaScenario.run() + // then + // prints manipulated sakila database + } +} \ No newline at end of file -- GitLab