Fix sensivity to tests classes order
This commit is contained in:
@@ -1,12 +1,15 @@
|
|||||||
package org.jeudego.pairgoth.test
|
package org.jeudego.pairgoth.test
|
||||||
|
|
||||||
import com.republicate.kson.Json
|
import com.republicate.kson.Json
|
||||||
|
import org.jeudego.pairgoth.model.ID
|
||||||
import org.junit.jupiter.api.MethodOrderer.MethodName
|
import org.junit.jupiter.api.MethodOrderer.MethodName
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import org.junit.jupiter.api.TestInstance
|
import org.junit.jupiter.api.TestInstance
|
||||||
import org.junit.jupiter.api.TestMethodOrder
|
import org.junit.jupiter.api.TestMethodOrder
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
import kotlin.test.assertNotNull
|
||||||
import kotlin.test.assertTrue
|
import kotlin.test.assertTrue
|
||||||
|
import kotlin.test.fail
|
||||||
|
|
||||||
|
|
||||||
@TestMethodOrder(MethodName::class)
|
@TestMethodOrder(MethodName::class)
|
||||||
@@ -72,16 +75,24 @@ class BasicTests: TestBase() {
|
|||||||
"club" to "75Op"
|
"club" to "75Op"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var aTournamentID: ID? = null
|
||||||
|
var aTeamTournamentID: ID? = null
|
||||||
|
var aPlayerID: ID? = null
|
||||||
|
var anotherPlayerID: ID? = null
|
||||||
|
var aTournamentGameID: ID? = null
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `001 create tournament`() {
|
fun `001 create tournament`() {
|
||||||
val resp = TestAPI.post("/api/tour", aTournament) as Json.Object
|
val resp = TestAPI.post("/api/tour", aTournament).asObject()
|
||||||
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
||||||
|
aTournamentID = resp.getInt("id")
|
||||||
|
assertNotNull(aTournamentID)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `002 get tournament`() {
|
fun `002 get tournament`() {
|
||||||
val resp = TestAPI.get("/api/tour/1") as Json.Object
|
val resp = TestAPI.get("/api/tour/$aTournamentID").asObject()
|
||||||
assertEquals(1, resp.getInt("id"), "First tournament should have id #1")
|
assertEquals(aTournamentID, resp.getInt("id"), "First tournament should have id #$aTournamentID")
|
||||||
// filter out "id", and also "komi", "rules" and "gobanSize" which were provided by default
|
// filter out "id", and also "komi", "rules" and "gobanSize" which were provided by default
|
||||||
val cmp = Json.Object(*resp.entries.filter { it.key !in listOf("id", "komi", "rules", "gobanSize") }.map { Pair(it.key, it.value) }.toTypedArray())
|
val cmp = Json.Object(*resp.entries.filter { it.key !in listOf("id", "komi", "rules", "gobanSize") }.map { Pair(it.key, it.value) }.toTypedArray())
|
||||||
assertEquals(aTournament.toString(), cmp.toString(), "tournament differs")
|
assertEquals(aTournament.toString(), cmp.toString(), "tournament differs")
|
||||||
@@ -89,11 +100,12 @@ class BasicTests: TestBase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `003 register user`() {
|
fun `003 register user`() {
|
||||||
val resp = TestAPI.post("/api/tour/1/part", aPlayer) as Json.Object
|
val resp = TestAPI.post("/api/tour/$aTournamentID/part", aPlayer).asObject()
|
||||||
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
||||||
val players = TestAPI.get("/api/tour/1/part") as Json.Array
|
aPlayerID = resp.getInt("id")
|
||||||
|
val players = TestAPI.get("/api/tour/$aTournamentID/part").asArray()
|
||||||
val player = players[0] as Json.Object
|
val player = players[0] as Json.Object
|
||||||
assertEquals(1, player.getInt("id"), "First player should have id #1")
|
assertEquals(aPlayerID, player.getInt("id"), "First player should have id #$aPlayerID")
|
||||||
// filter out "id"
|
// filter out "id"
|
||||||
val cmp = Json.Object(*player.entries.filter { it.key != "id" }.map { Pair(it.key, it.value) }.toTypedArray())
|
val cmp = Json.Object(*player.entries.filter { it.key != "id" }.map { Pair(it.key, it.value) }.toTypedArray())
|
||||||
assertEquals(aPlayer.toString(), cmp.toString(), "player differs")
|
assertEquals(aPlayer.toString(), cmp.toString(), "player differs")
|
||||||
@@ -101,70 +113,72 @@ class BasicTests: TestBase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `004 modify user`() {
|
fun `004 modify user`() {
|
||||||
// remove player #1 from round #2
|
// remove player aPlayer from round #2
|
||||||
val resp = TestAPI.put("/api/tour/1/part/1", Json.Object("skip" to Json.Array(2))) as Json.Object
|
val resp = TestAPI.put("/api/tour/$aTournamentID/part/$aPlayerID", Json.Object("skip" to Json.Array(2))).asObject()
|
||||||
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
||||||
val player = TestAPI.get("/api/tour/1/part/1") as Json.Object
|
val player = TestAPI.get("/api/tour/$aTournamentID/part/$aPlayerID").asObject()
|
||||||
assertEquals("[2]", player.getArray("skip").toString(), "First player should have id #1")
|
assertEquals("[2]", player.getArray("skip").toString(), "First player should skip round #2")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `005 pair`() {
|
fun `005 pair`() {
|
||||||
val resp = TestAPI.post("/api/tour/1/part", anotherPlayer) as Json.Object
|
val resp = TestAPI.post("/api/tour/$aTournamentID/part", anotherPlayer).asObject()
|
||||||
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
||||||
var games = TestAPI.post("/api/tour/1/pair/1", Json.Array("all"))
|
anotherPlayerID = resp.getInt("id")
|
||||||
|
var games = TestAPI.post("/api/tour/$aTournamentID/pair/1", Json.Array("all")).asArray()
|
||||||
|
aTournamentGameID = (games[0] as Json.Object).getInt("id")
|
||||||
val possibleResults = setOf(
|
val possibleResults = setOf(
|
||||||
"""[{"id":1,"w":1,"b":2,"h":0,"r":"?"}]""",
|
"""[{"id":$aTournamentGameID,"w":$aPlayerID,"b":$anotherPlayerID,"h":0,"r":"?"}]""",
|
||||||
"""[{"id":1,"w":2,"b":1,"h":0,"r":"?"}]"""
|
"""[{"id":$aTournamentGameID,"w":$anotherPlayerID,"b":$aPlayerID,"h":0,"r":"?"}]"""
|
||||||
)
|
)
|
||||||
assertTrue(possibleResults.contains(games.toString()), "pairing differs")
|
assertTrue(possibleResults.contains(games.toString()), "pairing differs")
|
||||||
games = TestAPI.get("/api/tour/1/res/1") as Json.Array
|
games = TestAPI.get("/api/tour/$aTournamentID/res/1").asArray()
|
||||||
assertTrue(possibleResults.contains(games.toString()), "results differs")
|
assertTrue(possibleResults.contains(games.toString()), "results differs")
|
||||||
val empty = TestAPI.get("/api/tour/1/pair/1") as Json.Array
|
val empty = TestAPI.get("/api/tour/$aTournamentID/pair/1").asArray()
|
||||||
assertEquals("[]", empty.toString(), "no more pairables for round 1")
|
assertEquals("[]", empty.toString(), "no more pairables for round 1")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `006 result`() {
|
fun `006 result`() {
|
||||||
val resp = TestAPI.put("/api/tour/1/res/1", Json.parse("""{"id":1,"result":"b"}""")) as Json.Object
|
val resp = TestAPI.put("/api/tour/$aTournamentID/res/1", Json.parse("""{"id":$aTournamentGameID,"result":"b"}""")).asObject()
|
||||||
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
||||||
val games = TestAPI.get("/api/tour/1/res/1")
|
val games = TestAPI.get("/api/tour/$aTournamentID/res/1")
|
||||||
val possibleResults = setOf(
|
val possibleResults = setOf(
|
||||||
"""[{"id":1,"w":1,"b":2,"h":0,"r":"b"}]""",
|
"""[{"id":$aTournamentGameID,"w":$aPlayerID,"b":$anotherPlayerID,"h":0,"r":"b"}]""",
|
||||||
"""[{"id":1,"w":2,"b":1,"h":0,"r":"b"}]"""
|
"""[{"id":$aTournamentGameID,"w":$anotherPlayerID,"b":$aPlayerID,"h":0,"r":"b"}]"""
|
||||||
)
|
)
|
||||||
assertTrue(possibleResults.contains(games.toString()), "results differ")
|
assertTrue(possibleResults.contains(games.toString()), "results differ")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `007 team tournament, MacMahon`() {
|
fun `007 team tournament, MacMahon`() {
|
||||||
var resp = TestAPI.post("/api/tour", aTeamTournament) as Json.Object
|
var resp = TestAPI.post("/api/tour", aTeamTournament).asObject()
|
||||||
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
||||||
assertEquals(2, resp.getInt("id"), "expecting id #2 for new tournament")
|
aTeamTournamentID = resp.getInt("id")
|
||||||
resp = TestAPI.post("/api/tour/2/part", aPlayer) as Json.Object
|
resp = TestAPI.post("/api/tour/$aTeamTournamentID/part", aPlayer).asObject()
|
||||||
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
||||||
assertEquals(3, resp.getInt("id"), "expecting id #3 for new player")
|
val aTeamPlayerID = resp.getInt("id") ?: fail("id cannot be null")
|
||||||
resp = TestAPI.post("/api/tour/2/part", anotherPlayer) as Json.Object
|
resp = TestAPI.post("/api/tour/$aTeamTournamentID/part", anotherPlayer).asObject()
|
||||||
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
||||||
assertEquals(4, resp.getInt("id"), "expecting id #{ for new player")
|
val anotherTeamPlayerID = resp.getInt("id") ?: fail("id cannot be null")
|
||||||
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
var arr = TestAPI.get("/api/tour/$aTeamTournamentID/pair/1").asArray()
|
||||||
var arr = TestAPI.get("/api/tour/2/pair/1") as Json.Array
|
|
||||||
assertEquals("[]", arr.toString(), "expecting an empty array")
|
assertEquals("[]", arr.toString(), "expecting an empty array")
|
||||||
resp = TestAPI.post("/api/tour/2/team", Json.parse("""{ "name":"The Buffallos", "players":[3, 4] }""") as Json.Object) as Json.Object
|
resp = TestAPI.post("/api/tour/$aTeamTournamentID/team", Json.parse("""{ "name":"The Buffallos", "players":[$aTeamPlayerID, $anotherTeamPlayerID] }""")?.asObject() ?: fail("no null allowed here")).asObject()
|
||||||
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
||||||
assertEquals(5, resp.getInt("id"), "expecting team id #5")
|
val aTeamID = resp.getInt("id") ?: error("no null allowed here")
|
||||||
resp = TestAPI.get("/api/tour/2/team/5") as Json.Object
|
resp = TestAPI.get("/api/tour/$aTeamTournamentID/team/$aTeamID").asObject()
|
||||||
assertEquals("""{"id":5,"name":"The Buffallos","players":[3,4]}""", resp.toString(), "expecting team description")
|
assertEquals("""{"id":$aTeamID,"name":"The Buffallos","players":[$aTeamPlayerID,$anotherTeamPlayerID]}""", resp.toString(), "expecting team description")
|
||||||
arr = TestAPI.get("/api/tour/2/pair/1") as Json.Array
|
arr = TestAPI.get("/api/tour/$aTeamTournamentID/pair/1").asArray()
|
||||||
assertEquals("[5]", arr.toString(), "expecting a singleton array")
|
assertEquals("[$aTeamID]", arr.toString(), "expecting a singleton array")
|
||||||
// nothing stops us in reusing players in different teams, at least for now...
|
// nothing stops us in reusing players in different teams, at least for now...
|
||||||
resp = TestAPI.post("/api/tour/2/team", Json.parse("""{ "name":"The Billies", "players":[3, 4] }""") as Json.Object) as Json.Object
|
resp = TestAPI.post("/api/tour/$aTeamTournamentID/team", Json.parse("""{ "name":"The Billies", "players":[$aTeamPlayerID, $anotherTeamPlayerID] }""")?.asObject() ?: fail("no null here")).asObject()
|
||||||
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
||||||
assertEquals(6, resp.getInt("id"), "expecting team id #6")
|
val anotherTeamID = resp.getInt("id") ?: fail("no null here")
|
||||||
arr = TestAPI.get("/api/tour/2/pair/1") as Json.Array
|
arr = TestAPI.get("/api/tour/$aTeamTournamentID/pair/1").asArray()
|
||||||
assertEquals("[5,6]", arr.toString(), "expecting two pairables")
|
assertEquals("[$aTeamID,$anotherTeamID]", arr.toString(), "expecting two pairables")
|
||||||
arr = TestAPI.post("/api/tour/2/pair/1", Json.parse("""["all"]""")) as Json.Array
|
arr = TestAPI.post("/api/tour/$aTeamTournamentID/pair/1", Json.parse("""["all"]""")).asArray()
|
||||||
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
assertTrue(resp.getBoolean("success") == true, "expecting success")
|
||||||
val expected = """"["id":1,"w":5,"b":6,"h":3,"r":"?"]"""
|
// TODO check pairing
|
||||||
|
// val expected = """"["id":1,"w":5,"b":6,"h":3,"r":"?"]"""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user