summaryrefslogtreecommitdiff
path: root/backend/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'backend/src/test')
-rw-r--r--backend/src/test/kotlin/org/luxons/sevenwonders/test/api/SevenWondersClient.kt29
1 files changed, 20 insertions, 9 deletions
diff --git a/backend/src/test/kotlin/org/luxons/sevenwonders/test/api/SevenWondersClient.kt b/backend/src/test/kotlin/org/luxons/sevenwonders/test/api/SevenWondersClient.kt
index d98e932e..472e5529 100644
--- a/backend/src/test/kotlin/org/luxons/sevenwonders/test/api/SevenWondersClient.kt
+++ b/backend/src/test/kotlin/org/luxons/sevenwonders/test/api/SevenWondersClient.kt
@@ -1,25 +1,36 @@
package org.luxons.sevenwonders.test.api
+import com.fasterxml.jackson.databind.module.SimpleModule
+import org.hildan.jackstomp.JackstompClient
+import org.luxons.sevenwonders.config.SEVEN_WONDERS_WS_ENDPOINT
+import org.luxons.sevenwonders.game.resources.MutableResources
+import org.luxons.sevenwonders.game.resources.Resources
+import org.springframework.messaging.converter.MappingJackson2MessageConverter
import java.util.concurrent.ExecutionException
import java.util.concurrent.TimeoutException
-import org.hildan.jackstomp.JackstompClient
-import org.hildan.jackstomp.JackstompSession
+class SevenWondersClient {
+
+ private val client: JackstompClient
-class SevenWondersClient @JvmOverloads constructor(private val client: JackstompClient = JackstompClient()) {
+ init {
+ val customMappingsModule = SimpleModule("ConcreteResourcesDeserializationModule")
+ customMappingsModule.addAbstractTypeMapping(Resources::class.java, MutableResources::class.java)
+
+ val mappingJackson2MessageConverter = MappingJackson2MessageConverter()
+ mappingJackson2MessageConverter.objectMapper.registerModule(customMappingsModule)
+
+ client = JackstompClient()
+ client.webSocketClient.messageConverter = mappingJackson2MessageConverter
+ }
@Throws(InterruptedException::class, ExecutionException::class, TimeoutException::class)
fun connect(serverUrl: String): SevenWondersSession {
- val session = client.connect(serverUrl + WEBSOCKET_ENDPOINT)
+ val session = client.syncConnect(serverUrl + SEVEN_WONDERS_WS_ENDPOINT)
return SevenWondersSession(session)
}
fun stop() {
client.stop()
}
-
- companion object {
-
- private val WEBSOCKET_ENDPOINT = "/seven-wonders-websocket"
- }
}
bgstack15