From e01bc17c650947b8495b2c76a4696f22f9f8ed9c Mon Sep 17 00:00:00 2001
From: npedot <nicola.pedot@gmail.com>
Date: Wed, 15 Jan 2020 10:18:26 +0100
Subject: [PATCH] refacts sakila scenario from starter

---
 pom.xml                                       |  2 +-
 .../unibz.cs.semint.kprime/SakilaScenario.kt  | 50 +++++++++++++++++
 .../kotlin/unibz.cs.semint.kprime/Starter.kt  | 56 ++++---------------
 .../unibz.cs.semint.kprime/StarterTI.kt       | 22 ++++++++
 .../unibz.cs.semint.kprime/StarterTest.kt     | 14 -----
 5 files changed, 83 insertions(+), 61 deletions(-)
 create mode 100644 src/main/kotlin/unibz.cs.semint.kprime/SakilaScenario.kt
 create mode 100644 src/test/kotlin/unibz.cs.semint.kprime/StarterTI.kt
 delete mode 100644 src/test/kotlin/unibz.cs.semint.kprime/StarterTest.kt

diff --git a/pom.xml b/pom.xml
index 6880245..0221a52 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
     <version>1.0-SNAPSHOT</version>
 
     <properties>
-        <main.class>unibz.cs.semint.kprime.StarterKt</main.class>
+        <main.class>unibz.cs.semint.kprime.Starter</main.class>
 
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
diff --git a/src/main/kotlin/unibz.cs.semint.kprime/SakilaScenario.kt b/src/main/kotlin/unibz.cs.semint.kprime/SakilaScenario.kt
new file mode 100644
index 0000000..cf7f9ce
--- /dev/null
+++ b/src/main/kotlin/unibz.cs.semint.kprime/SakilaScenario.kt
@@ -0,0 +1,50 @@
+package unibz.cs.semint.kprime
+
+import unibz.cs.semint.kprime.adapter.repository.MetaSchemaJdbcAdapter
+import unibz.cs.semint.kprime.adapter.service.XMLSerializerJacksonAdapter
+import unibz.cs.semint.kprime.domain.DataSource
+import unibz.cs.semint.kprime.domain.Database
+import unibz.cs.semint.kprime.usecase.MetaSchemaReadUseCase
+
+class SakilaScenario {
+
+    fun run() {
+        val sakilaMeta = readSakilaMeta()
+        if (sakilaMeta!=null) {
+            vsplitSakila(sakilaMeta)
+            hsplitSakila(sakilaMeta)
+            identifySakila(sakilaMeta)
+        }
+    }
+
+    private fun readSakilaMeta(): Database? {
+        val type = "psql"
+        val name = "sakila-source"
+        val driver = "org.postgresql.Driver"
+        val path = "jdbc:postgresql://localhost:5432/sakila"
+        val user = "sammy"
+        val pass = "pass"
+        val sakilaSource = DataSource(type,name,driver,path,user,pass)
+        val result = MetaSchemaReadUseCase().doit(sakilaSource,
+                "read-meta-schema sakila-source",
+                MetaSchemaJdbcAdapter(),
+                XMLSerializerJacksonAdapter())
+        return result.ok
+    }
+
+    private fun vsplitSakila(db: Database) {
+        // if detect(db):result
+        //  apply(db,result):db
+    }
+
+    private fun hsplitSakila(db: Database) {
+        // if detect(db):result
+        //  apply(db,result):db
+    }
+
+    private fun identifySakila(db: Database) {
+        // if detect(db):result
+        //  apply(db,result):db
+    }
+
+}
\ No newline at end of file
diff --git a/src/main/kotlin/unibz.cs.semint.kprime/Starter.kt b/src/main/kotlin/unibz.cs.semint.kprime/Starter.kt
index 29b40c9..4ddb1c8 100644
--- a/src/main/kotlin/unibz.cs.semint.kprime/Starter.kt
+++ b/src/main/kotlin/unibz.cs.semint.kprime/Starter.kt
@@ -1,54 +1,18 @@
 package unibz.cs.semint.kprime
 
-import unibz.cs.semint.kprime.adapter.repository.MetaSchemaJdbcAdapter
-import unibz.cs.semint.kprime.adapter.service.XMLSerializerJacksonAdapter
-import unibz.cs.semint.kprime.domain.DataSource
-import unibz.cs.semint.kprime.domain.Database
-import unibz.cs.semint.kprime.usecase.MetaSchemaReadUseCase
-
 class Starter {
 
+ companion object {
 
-    fun main(args:Array<String>) {
-        val version = "0.1.0-SNAPSHOT"
-        println("KPrime $version")
-        val sakilaMeta = readSakilaMeta()
-        if (sakilaMeta!=null) {
-            vsplitSakila(sakilaMeta)
-            hsplitSakila(sakilaMeta)
-            identifySakila(sakilaMeta)
-        }
-    }
-
-
-    fun readSakilaMeta():Database? {
-        val type = "psql"
-        val name = "sakila-source"
-        val driver = "org.postgresql.Driver"
-        val path = "jdbc:postgresql://localhost:5432/sakila"
-        val user = "sammy"
-        val pass = "pass"
-        val sakilaSource = DataSource(type,name,driver,path,user,pass)
-        val result = MetaSchemaReadUseCase().doit(sakilaSource,
-                "read-meta-schema sakila-source",
-                MetaSchemaJdbcAdapter(),
-                XMLSerializerJacksonAdapter())
-        return result.ok
-    }
-
-    fun vsplitSakila(db:Database) {
-        // if detect(db):result
-        //  apply(db,result):db
-    }
-
-    fun hsplitSakila(db:Database) {
-        // if detect(db):result
-        //  apply(db,result):db
-    }
+     /**
+      * Reads arguments from command lines and eventually gives then as scenario parameters.
+      */
+     fun main(args:Array<String>) {
+         val version = "0.1.0-SNAPSHOT"
+         println("KPrime $version")
+         SakilaScenario().run()
+     }
 
-    fun identifySakila(db:Database) {
-        // if detect(db):result
-        //  apply(db,result):db
-    }
+ }
 
 }
\ No newline at end of file
diff --git a/src/test/kotlin/unibz.cs.semint.kprime/StarterTI.kt b/src/test/kotlin/unibz.cs.semint.kprime/StarterTI.kt
new file mode 100644
index 0000000..60862e4
--- /dev/null
+++ b/src/test/kotlin/unibz.cs.semint.kprime/StarterTI.kt
@@ -0,0 +1,22 @@
+package unibz.cs.semint.kprime
+
+import org.junit.Test
+import org.junit.Assert.*
+
+/**
+ * Applies Starter to local Sakila Postgres Example.
+ */
+class StarterTI {
+
+    @Test
+    fun test_starter() {
+        // given
+        val args = arrayOf<String>()
+        // when
+        Starter.main(args)
+        // then
+        assertEquals("Alfa", "Alfa")
+    }
+
+}
+
diff --git a/src/test/kotlin/unibz.cs.semint.kprime/StarterTest.kt b/src/test/kotlin/unibz.cs.semint.kprime/StarterTest.kt
deleted file mode 100644
index 5560b19..0000000
--- a/src/test/kotlin/unibz.cs.semint.kprime/StarterTest.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package unibz.cs.semint.kprime
-
-import org.junit.Test
-import org.junit.Assert.*
-
-class StarterTest {
-
-    @Test
-    fun test_starter() {
-        assertEquals("Alfa", "Alfa")
-    }
-
-}
-
-- 
GitLab