diff --git a/network/src/test/java/org/fnives/test/showcase/network/auth/LoginRemoteSourceRefreshActionImplTest.kt b/network/src/test/java/org/fnives/test/showcase/network/auth/LoginRemoteSourceRefreshActionImplTest.kt index 90f7cf5..dc982fe 100644 --- a/network/src/test/java/org/fnives/test/showcase/network/auth/LoginRemoteSourceRefreshActionImplTest.kt +++ b/network/src/test/java/org/fnives/test/showcase/network/auth/LoginRemoteSourceRefreshActionImplTest.kt @@ -30,8 +30,7 @@ class LoginRemoteSourceRefreshActionImplTest : KoinTest { @RegisterExtension @JvmField val mockServerScenarioSetupExtensions = MockServerScenarioSetupExtensions() - private val mockServerScenarioSetup - get() = mockServerScenarioSetupExtensions.mockServerScenarioSetup + private val mockServerScenarioSetup get() = mockServerScenarioSetupExtensions.mockServerScenarioSetup @BeforeEach fun setUp() { @@ -56,7 +55,7 @@ class LoginRemoteSourceRefreshActionImplTest : KoinTest { @DisplayName("GIVEN successful response WHEN refresh request is fired THEN session is returned") @Test fun successResponseResultsInSession() = runBlocking { - mockServerScenarioSetup.setScenario(RefreshTokenScenario.Success) + mockServerScenarioSetup.setScenario(RefreshTokenScenario.Success, validateArguments = false) val expected = ContentData.refreshSuccessResponse val actual = sut.refresh(ContentData.refreshSuccessResponse.refreshToken) @@ -67,7 +66,7 @@ class LoginRemoteSourceRefreshActionImplTest : KoinTest { @DisplayName("GIVEN successful response WHEN refresh request is fired THEN the request is setup properly") @Test fun refreshRequestIsSetupProperly() = runBlocking { - mockServerScenarioSetup.setScenario(RefreshTokenScenario.Success, false) + mockServerScenarioSetup.setScenario(RefreshTokenScenario.Success, validateArguments = false) sut.refresh(ContentData.refreshSuccessResponse.refreshToken) val request = mockServerScenarioSetup.takeRequest() @@ -82,7 +81,7 @@ class LoginRemoteSourceRefreshActionImplTest : KoinTest { @DisplayName("GIVEN internal error response WHEN refresh request is fired THEN network exception is thrown") @Test fun generalErrorResponseResultsInNetworkException() { - mockServerScenarioSetup.setScenario(RefreshTokenScenario.Error) + mockServerScenarioSetup.setScenario(RefreshTokenScenario.Error, validateArguments = false) Assertions.assertThrows(NetworkException::class.java) { runBlocking { sut.refresh(ContentData.refreshSuccessResponse.refreshToken) } @@ -92,7 +91,7 @@ class LoginRemoteSourceRefreshActionImplTest : KoinTest { @DisplayName("GIVEN invalid json response WHEN refresh request is fired THEN network exception is thrown") @Test fun jsonErrorResponseResultsInParsingException() { - mockServerScenarioSetup.setScenario(RefreshTokenScenario.UnexpectedJsonAsSuccessResponse) + mockServerScenarioSetup.setScenario(RefreshTokenScenario.UnexpectedJsonAsSuccessResponse, validateArguments = false) Assertions.assertThrows(ParsingException::class.java) { runBlocking { sut.refresh(ContentData.loginSuccessResponse.refreshToken) } @@ -102,7 +101,7 @@ class LoginRemoteSourceRefreshActionImplTest : KoinTest { @DisplayName("GIVEN malformed json response WHEN refresh request is fired THEN parsing exception is thrown") @Test fun malformedJsonErrorResponseResultsInParsingException() { - mockServerScenarioSetup.setScenario(RefreshTokenScenario.MalformedJson) + mockServerScenarioSetup.setScenario(RefreshTokenScenario.MalformedJson, validateArguments = false) Assertions.assertThrows(ParsingException::class.java) { runBlocking { sut.refresh(ContentData.loginSuccessResponse.refreshToken) } diff --git a/network/src/test/java/org/fnives/test/showcase/network/auth/LoginRemoteSourceTest.kt b/network/src/test/java/org/fnives/test/showcase/network/auth/LoginRemoteSourceTest.kt index 6e08ee1..90dbcbc 100644 --- a/network/src/test/java/org/fnives/test/showcase/network/auth/LoginRemoteSourceTest.kt +++ b/network/src/test/java/org/fnives/test/showcase/network/auth/LoginRemoteSourceTest.kt @@ -34,8 +34,7 @@ class LoginRemoteSourceTest : KoinTest { @RegisterExtension @JvmField val mockServerScenarioSetupExtensions = MockServerScenarioSetupExtensions() - private val mockServerScenarioSetup - get() = mockServerScenarioSetupExtensions.mockServerScenarioSetup + private val mockServerScenarioSetup get() = mockServerScenarioSetupExtensions.mockServerScenarioSetup @BeforeEach fun setUp() { @@ -60,10 +59,10 @@ class LoginRemoteSourceTest : KoinTest { @DisplayName("GIVEN successful response WHEN request is fired THEN login status success is returned") @Test fun successResponseIsParsedProperly() = runBlocking { - mockServerScenarioSetup.setScenario(AuthScenario.Success("a", "b")) + mockServerScenarioSetup.setScenario(AuthScenario.Success(username = "a", password = "b"), validateArguments = false) val expected = LoginStatusResponses.Success(ContentData.loginSuccessResponse) - val actual = sut.login(LoginCredentials("a", "b")) + val actual = sut.login(LoginCredentials(username = "a", password = "b")) Assertions.assertEquals(expected, actual) } @@ -71,16 +70,16 @@ class LoginRemoteSourceTest : KoinTest { @DisplayName("GIVEN successful response WHEN request is fired THEN the request is setup properly") @Test fun requestProperlySetup() = runBlocking { - mockServerScenarioSetup.setScenario(AuthScenario.Success("a", "b"), false) + mockServerScenarioSetup.setScenario(AuthScenario.Success(username = "a", password = "b"), validateArguments = false) - sut.login(LoginCredentials("a", "b")) + sut.login(LoginCredentials(username = "a", password = "b")) val request = mockServerScenarioSetup.takeRequest() Assertions.assertEquals("POST", request.method) Assertions.assertEquals("Android", request.getHeader("Platform")) Assertions.assertEquals(null, request.getHeader("Authorization")) Assertions.assertEquals("/login", request.path) - val loginRequest = createExpectedLoginRequestJson("a", "b") + val loginRequest = createExpectedLoginRequestJson(username = "a", password = "b") JSONAssert.assertEquals( loginRequest, request.body.readUtf8(), @@ -91,10 +90,10 @@ class LoginRemoteSourceTest : KoinTest { @DisplayName("GIVEN bad request response WHEN request is fired THEN login status invalid credentials is returned") @Test fun badRequestMeansInvalidCredentials() = runBlocking { - mockServerScenarioSetup.setScenario(AuthScenario.InvalidCredentials("a", "b")) + mockServerScenarioSetup.setScenario(AuthScenario.InvalidCredentials(username = "a", password = "b"), validateArguments = false) val expected = LoginStatusResponses.InvalidCredentials - val actual = sut.login(LoginCredentials("a", "b")) + val actual = sut.login(LoginCredentials(username = "a", password = "b")) Assertions.assertEquals(expected, actual) } @@ -102,30 +101,32 @@ class LoginRemoteSourceTest : KoinTest { @DisplayName("GIVEN internal error response WHEN request is fired THEN network exception is thrown") @Test fun genericErrorMeansNetworkError() { - mockServerScenarioSetup.setScenario(AuthScenario.GenericError("a", "b")) + mockServerScenarioSetup.setScenario(AuthScenario.GenericError(username = "a", password = "b"), validateArguments = false) Assertions.assertThrows(NetworkException::class.java) { - runBlocking { sut.login(LoginCredentials("a", "b")) } + runBlocking { sut.login(LoginCredentials(username = "a", password = "b")) } } } @DisplayName("GIVEN invalid json response WHEN request is fired THEN network exception is thrown") @Test fun invalidJsonMeansParsingException() { - mockServerScenarioSetup.setScenario(AuthScenario.UnexpectedJsonAsSuccessResponse("a", "b")) + val response = AuthScenario.UnexpectedJsonAsSuccessResponse(username = "a", password = "b") + mockServerScenarioSetup.setScenario(response, validateArguments = false) Assertions.assertThrows(ParsingException::class.java) { - runBlocking { sut.login(LoginCredentials("a", "b")) } + runBlocking { sut.login(LoginCredentials(username = "a", password = "b")) } } } @DisplayName("GIVEN malformed json response WHEN request is fired THEN network exception is thrown") @Test fun malformedJsonMeansParsingException() { - mockServerScenarioSetup.setScenario(AuthScenario.MalformedJsonAsSuccessResponse("a", "b")) + val response = AuthScenario.MalformedJsonAsSuccessResponse(username = "a", "b") + mockServerScenarioSetup.setScenario(response, validateArguments = false) Assertions.assertThrows(ParsingException::class.java) { - runBlocking { sut.login(LoginCredentials("a", "b")) } + runBlocking { sut.login(LoginCredentials(username = "a", "b")) } } } } diff --git a/network/src/test/java/org/fnives/test/showcase/network/content/ContentRemoteSourceImplTest.kt b/network/src/test/java/org/fnives/test/showcase/network/content/ContentRemoteSourceImplTest.kt index 352488f..9fe16ff 100644 --- a/network/src/test/java/org/fnives/test/showcase/network/content/ContentRemoteSourceImplTest.kt +++ b/network/src/test/java/org/fnives/test/showcase/network/content/ContentRemoteSourceImplTest.kt @@ -32,8 +32,7 @@ class ContentRemoteSourceImplTest : KoinTest { @JvmField val mockServerScenarioSetupExtensions = MockServerScenarioSetupExtensions() private lateinit var mockNetworkSessionLocalStorage: NetworkSessionLocalStorage - private val mockServerScenarioSetup - get() = mockServerScenarioSetupExtensions.mockServerScenarioSetup + private val mockServerScenarioSetup get() = mockServerScenarioSetupExtensions.mockServerScenarioSetup @BeforeEach fun setUp() { @@ -59,7 +58,7 @@ class ContentRemoteSourceImplTest : KoinTest { @Test fun successResponseParsing() = runBlocking { whenever(mockNetworkSessionLocalStorage.session).doReturn(ContentData.loginSuccessResponse) - mockServerScenarioSetup.setScenario(ContentScenario.Success(false)) + mockServerScenarioSetup.setScenario(ContentScenario.Success(usingRefreshedToken = false), validateArguments = false) val expected = ContentData.contentSuccess val actual = sut.get() @@ -71,7 +70,7 @@ class ContentRemoteSourceImplTest : KoinTest { @Test fun successResponseRequestIsCorrect() = runBlocking { whenever(mockNetworkSessionLocalStorage.session).doReturn(ContentData.loginSuccessResponse) - mockServerScenarioSetup.setScenario(ContentScenario.Success(false), false) + mockServerScenarioSetup.setScenario(ContentScenario.Success(usingRefreshedToken = false), validateArguments = false) sut.get() val request = mockServerScenarioSetup.takeRequest() @@ -87,7 +86,8 @@ class ContentRemoteSourceImplTest : KoinTest { @Test fun dataMissingFieldIsIgnored() = runBlocking { whenever(mockNetworkSessionLocalStorage.session).doReturn(ContentData.loginSuccessResponse) - mockServerScenarioSetup.setScenario(ContentScenario.SuccessWithMissingFields(false)) + val response = ContentScenario.SuccessWithMissingFields(usingRefreshedToken = false) + mockServerScenarioSetup.setScenario(response, validateArguments = false) val expected = ContentData.contentSuccessWithMissingFields @@ -100,7 +100,7 @@ class ContentRemoteSourceImplTest : KoinTest { @Test fun errorResponseResultsInNetworkException() { whenever(mockNetworkSessionLocalStorage.session).doReturn(ContentData.loginSuccessResponse) - mockServerScenarioSetup.setScenario(ContentScenario.Error(false)) + mockServerScenarioSetup.setScenario(ContentScenario.Error(usingRefreshedToken = false), validateArguments = false) Assertions.assertThrows(NetworkException::class.java) { runBlocking { sut.get() } @@ -111,7 +111,8 @@ class ContentRemoteSourceImplTest : KoinTest { @Test fun unexpectedJSONResultsInParsingException() { whenever(mockNetworkSessionLocalStorage.session).doReturn(ContentData.loginSuccessResponse) - mockServerScenarioSetup.setScenario(ContentScenario.UnexpectedJsonAsSuccessResponse(false)) + val response = ContentScenario.UnexpectedJsonAsSuccessResponse(usingRefreshedToken = false) + mockServerScenarioSetup.setScenario(response, validateArguments = false) Assertions.assertThrows(ParsingException::class.java) { runBlocking { sut.get() } @@ -122,7 +123,8 @@ class ContentRemoteSourceImplTest : KoinTest { @Test fun malformedJSONResultsInParsingException() { whenever(mockNetworkSessionLocalStorage.session).doReturn(ContentData.loginSuccessResponse) - mockServerScenarioSetup.setScenario(ContentScenario.MalformedJsonAsSuccessResponse(false)) + val response = ContentScenario.MalformedJsonAsSuccessResponse(usingRefreshedToken = false) + mockServerScenarioSetup.setScenario(response, validateArguments = false) Assertions.assertThrows(ParsingException::class.java) { runBlocking { sut.get() } diff --git a/network/src/test/java/org/fnives/test/showcase/network/content/SessionExpirationTest.kt b/network/src/test/java/org/fnives/test/showcase/network/content/SessionExpirationTest.kt index f521175..f4f1c30 100644 --- a/network/src/test/java/org/fnives/test/showcase/network/content/SessionExpirationTest.kt +++ b/network/src/test/java/org/fnives/test/showcase/network/content/SessionExpirationTest.kt @@ -39,8 +39,7 @@ class SessionExpirationTest : KoinTest { @RegisterExtension @JvmField val mockServerScenarioSetupExtensions = MockServerScenarioSetupExtensions() - private val mockServerScenarioSetup - get() = mockServerScenarioSetupExtensions.mockServerScenarioSetup + private val mockServerScenarioSetup get() = mockServerScenarioSetupExtensions.mockServerScenarioSetup private lateinit var mockNetworkSessionLocalStorage: NetworkSessionLocalStorage private lateinit var mockNetworkSessionExpirationListener: NetworkSessionExpirationListener @@ -70,11 +69,11 @@ class SessionExpirationTest : KoinTest { fun successRefreshResultsInRequestRetry() = runBlocking { var sessionToReturnByMock: Session? = ContentData.loginSuccessResponse mockServerScenarioSetup.setScenario( - ContentScenario.Unauthorized(false) - .then(ContentScenario.Success(true)), - false + ContentScenario.Unauthorized(usingRefreshedToken = false) + .then(ContentScenario.Success(usingRefreshedToken = true)), + validateArguments = false ) - mockServerScenarioSetup.setScenario(RefreshTokenScenario.Success, false) + mockServerScenarioSetup.setScenario(RefreshTokenScenario.Success, validateArguments = false) whenever(mockNetworkSessionLocalStorage.session).doAnswer { sessionToReturnByMock } doAnswer { sessionToReturnByMock = it.arguments[0] as Session? } .whenever(mockNetworkSessionLocalStorage).session = anyOrNull() @@ -106,8 +105,8 @@ class SessionExpirationTest : KoinTest { @Test fun failingRefreshResultsInSessionExpiration() = runBlocking { whenever(mockNetworkSessionLocalStorage.session).doReturn(ContentData.loginSuccessResponse) - mockServerScenarioSetup.setScenario(ContentScenario.Unauthorized(false)) - mockServerScenarioSetup.setScenario(RefreshTokenScenario.Error) + mockServerScenarioSetup.setScenario(ContentScenario.Unauthorized(usingRefreshedToken = false), validateArguments = false) + mockServerScenarioSetup.setScenario(RefreshTokenScenario.Error, validateArguments = false) Assertions.assertThrows(NetworkException::class.java) { runBlocking { sut.get() }