package org.moire.ultrasonic.api.subsonic import org.amshove.kluent.`should be` import org.junit.Before import org.junit.Test /** * Integration test for [VersionAwareJacksonConverterFactory]. */ class VersionAwareJacksonConverterFactoryTest : SubsonicAPIClientTest() { private val initialProtocolVersion = SubsonicAPIVersions.V1_1_0 private var updatedProtocolVersion = SubsonicAPIVersions.V1_1_0 @Before override fun setUp() { config = SubsonicClientConfiguration( mockWebServerRule.mockWebServer.url("/").toString(), USERNAME, PASSWORD, initialProtocolVersion, CLIENT_ID ) client = SubsonicAPIClient(config) } @Test fun `Should update version from response`() { mockWebServerRule.enqueueResponse("ping_ok.json") client.api.ping().execute() client.protocolVersion.`should be`(SubsonicAPIVersions.V1_13_0) } @Test fun `Should update version from response with utf-8 bom`() { mockWebServerRule.enqueueResponse("ping_ok_utf8_bom.json") client.api.ping().execute() client.protocolVersion.`should be`(SubsonicAPIVersions.V1_16_0) } @Test fun `Should not update version if response json doesn't contain version`() { mockWebServerRule.enqueueResponse("non_subsonic_response.json") client.api.stream("1234").execute() client.protocolVersion.`should be`(initialProtocolVersion) } }