3 Commits 2b1a439672 ... a2a053b3c1

Autore SHA1 Messaggio Data
  Adrien Carteron a2a053b3c1 [FIX] old test file 2 anni fa
  Adrien Carteron eca4a73059 [FEAT] add implementation to the interface 2 anni fa
  Adrien Carteron 130ba15136 [FIX] default host 2 anni fa

+ 2 - 2
src/main/kotlin/re/chasam/connector/impl/Mongo.kt

@@ -15,7 +15,7 @@ import re.chasam.models.impl.Player
 class Mongo : Connector {
     override val defaultDatabase = Database(
         System.getenv("SCHEME") ?: "mongodb",
-        System.getenv("HOST") ?: "127.0.0.0",
+        System.getenv("HOST") ?: "127.0.0.1",
         (System.getenv("PORT") ?: "27017").toInt(),
         System.getenv("NAME") ?: "tournament",
         System.getenv("COLLECTION") ?: "users")
@@ -25,7 +25,7 @@ class Mongo : Connector {
     private val database: MongoDatabase = mongoClient.getDatabase(defaultDatabase.name)
     private val mCollection: MongoCollection<Document> = database.getCollection(defaultDatabase.collection)
     init {
-        println("init tournament")
+        println("init tournament $uri")
     }
     override fun insertOrUpdate(name: String, score: Int, rank : Int) {
         val query = Document().append("name", name)

+ 0 - 11
src/main/kotlin/re/chasam/models/Tounament.kt

@@ -1,11 +0,0 @@
-package re.chasam.models
-
-import re.chasam.models.impl.Player
-
-interface Tournament {
-    fun getPlayer(name : String) : Player?
-    fun addOrUpdate(player : Player)
-    fun addOrUpdate(name : String, score : Int = 0)
-    fun clean()
-    fun updateRank()
-}

+ 43 - 0
src/main/kotlin/re/chasam/models/Tournament.kt

@@ -0,0 +1,43 @@
+package re.chasam.models
+
+import re.chasam.models.impl.Player
+
+interface Tournament {
+    var players: MutableList<Player>
+    fun getPlayer(name : String) : Player? {
+        val player = Player(name)
+        val index = players.indexOf(player)
+        if (index == -1)
+            return null
+        return players[index]
+    }
+    fun addOrUpdate(player : Player) {
+        val index = players.indexOf(player)
+        println("index: $index")
+        if (index == -1)
+            players.add(player)
+        else
+            players[index] = player
+        println(players)
+
+        updateRank()
+    }
+    fun addOrUpdate(name : String, score : Int = 0) {
+        val player = Player(name, score)
+        addOrUpdate(player)
+    }
+    fun clean() {
+        players.clear()
+    }
+    fun updateRank() {
+        players.sortDescending()
+        var rank = 0
+        var score = 0
+        for (player in players) {
+            if (player.score != score)
+                rank ++
+            player.rank = rank
+            score = player.score
+        }
+    }
+}

+ 7 - 36
src/main/kotlin/re/chasam/models/impl/TournamentImpl.kt

@@ -5,47 +5,18 @@ import re.chasam.connector.impl.Mongo
 import re.chasam.models.Tournament
 
 class TournamentImpl : Tournament, KoinComponent {
-    var players = mutableListOf<Player>()
-    private val mg = Mongo()
+    private var connector = Mongo()
+    override var players: MutableList<Player> = connector.listAll().toMutableList()
+
     init {
-        players = mg.listAll().toMutableList()
         updateRank()
     }
-    override fun getPlayer(name: String) : Player? {
-        val player = Player(name)
-        val index = players.indexOf(player)
-        if (index == -1)
-            return null
-        return players[index]
-    }
     override fun addOrUpdate(player : Player) {
-        val index = players.indexOf(player)
-        println("index: $index")
-        if (index == -1)
-            players.add(player)
-        else
-            players[index] = player
-        println(players)
-        mg.insertOrUpdate(player.name, player.score)
-        updateRank()
-    }
-    override fun addOrUpdate(name : String, score : Int){
-        val player = Player(name, score)
-        addOrUpdate(player)
+        super.addOrUpdate(player)
+        connector.insertOrUpdate(player.name, player.score)
     }
     override fun clean() {
-        players.clear()
-        mg.dropAll()
-    }
-    override fun updateRank() {
-        players.sortDescending()
-        var rank = 0
-        var score = 0
-        for (player in players) {
-            if (player.score != score)
-                rank ++
-            player.rank = rank
-            score = player.score
-        }
+        super.clean()
+        connector.dropAll()
     }
 }

+ 10 - 7
src/test/kotlin/re/chasam/models/impl/TournamentImplTest.kt → src/test/kotlin/re/chasam/models/TournamentTest.kt

@@ -1,17 +1,20 @@
-package re.chasam.models.impl
+package re.chasam.models
 
 import org.junit.Test
+import re.chasam.models.impl.Player
 import kotlin.test.assertEquals
 
-class TournamentImplTest {
-    private var tournament = TournamentImpl()
+class Tournament4Test(override var players: MutableList<Player>) : Tournament{
+}
+
+class TournamentTest {
     @Test
     fun getPlayer() {
-        tournament.players = mutableListOf(
+        var tournament = Tournament4Test(mutableListOf(
             Player("Player 1"),
             Player("Player 2", 1, 3),
             Player("Player 3"),
-            Player("Player 4"))
+            Player("Player 4")))
 
         val player1 = Player("Player 1", 1)
         val player2 = Player("Player 2",2)
@@ -28,12 +31,12 @@ class TournamentImplTest {
     }
     @Test
     fun updateRank() {
-        tournament.players = mutableListOf(
+        var tournament = Tournament4Test(mutableListOf(
             Player("Player 1", 30),
             Player("Player 2", 10),
             Player("Player 3",20),
             Player("Player 4",40),
-            Player("Player 5", 30))
+            Player("Player 5", 30)))
 
         tournament.updateRank()
         println(tournament.players)