diff options
Diffstat (limited to 'backend/src/test')
-rw-r--r-- | backend/src/test/kotlin/org/luxons/sevenwonders/test/api/SevenWondersClient.kt | 29 |
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" - } } |