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