Skip to content

Commit b257551

Browse files
committed
feat(android_sidebar): adding the tests to repository
1 parent 3a0776b commit b257551

File tree

1 file changed

+112
-0
lines changed

1 file changed

+112
-0
lines changed

xpeapp_android/app/src/test/java/com/xpeho/xpeapp/data/WordpressRepositoryTest.kt

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@ import android.util.Log
44
import com.xpeho.xpeapp.data.entity.AuthentificationBody
55
import com.xpeho.xpeapp.data.entity.QvstAnswerBody
66
import com.xpeho.xpeapp.data.entity.QvstCampaignEntity
7+
import com.xpeho.xpeapp.data.entity.user.UserEditPassword
78
import com.xpeho.xpeapp.data.model.AuthResult
89
import com.xpeho.xpeapp.data.model.WordpressToken
910
import com.xpeho.xpeapp.data.model.qvst.QvstAnswer
1011
import com.xpeho.xpeapp.data.model.qvst.QvstCampaign
1112
import com.xpeho.xpeapp.data.model.qvst.QvstProgress
1213
import com.xpeho.xpeapp.data.model.qvst.QvstQuestion
1314
import com.xpeho.xpeapp.data.model.qvst.QvstTheme
15+
import com.xpeho.xpeapp.data.model.user.UpdatePasswordResult
16+
import com.xpeho.xpeapp.data.model.user.UserInfos
1417
import com.xpeho.xpeapp.data.service.WordpressRepository
1518
import com.xpeho.xpeapp.data.service.WordpressService
1619
import io.mockk.coEvery
@@ -32,6 +35,7 @@ import org.junit.Test
3235
import org.junit.experimental.runners.Enclosed
3336
import org.junit.runner.RunWith
3437
import retrofit2.HttpException
38+
import retrofit2.Response
3539
import java.net.ConnectException
3640
import java.net.SocketTimeoutException
3741
import java.net.UnknownHostException
@@ -52,6 +56,7 @@ class WordpressRepositoryTest {
5256
wordpressRepo = spyk(WordpressRepository(wordpressService))
5357
mockkStatic(Log::class)
5458
every { Log.e(any(), any()) } returns 0
59+
every { Log.d(any(), any()) } returns 0
5560
}
5661
}
5762

@@ -491,6 +496,113 @@ class WordpressRepositoryTest {
491496
}
492497
}
493498

499+
class FetchUserInfosTests : BaseTest() {
500+
501+
@Test
502+
fun `fetchUserInfos with valid response returns UserInfos`() = runBlocking {
503+
val userInfos = UserInfos("1", "toto@example", "toto","tata")
504+
coEvery { wordpressService.fetchUserInfos() } returns userInfos
505+
506+
val result = wordpressRepo.fetchUserInfos()
507+
508+
assertEquals(userInfos, result)
509+
}
510+
511+
@Test
512+
fun `fetchUserInfos with network error returns null`() = runBlocking {
513+
coEvery { wordpressService.fetchUserInfos() } throws UnknownHostException()
514+
515+
val result = wordpressRepo.fetchUserInfos()
516+
517+
assertEquals(null, result)
518+
}
519+
520+
@Test
521+
fun `fetchUserInfos with HttpException returns null`() = runBlocking {
522+
coEvery { wordpressService.fetchUserInfos() } throws HttpException(mockk {
523+
coEvery { code() } returns 500
524+
coEvery { message() } returns "Internal Server Error"
525+
})
526+
527+
val result = wordpressRepo.fetchUserInfos()
528+
529+
assertEquals(null, result)
530+
}
531+
}
532+
533+
class UpdatePasswordTests : BaseTest() {
534+
companion object {
535+
private const val INTERNAL_SERVER_ERROR = 500
536+
private const val NO_CONTENT = 204
537+
}
538+
539+
@Test
540+
fun `updatePassword with valid response returns Success`() = runBlocking {
541+
val editPassword = UserEditPassword("oldPassword", "newPassword", "newPassword")
542+
val response = mockk<Response<String>> {
543+
every { code() } returns NO_CONTENT
544+
}
545+
coEvery { wordpressService.updatePassword(editPassword) } returns response
546+
547+
val result = wordpressRepo.updatePassword(editPassword)
548+
549+
assertEquals(UpdatePasswordResult.Success, result)
550+
}
551+
552+
@Test
553+
fun `updatePassword with incorrect initial password returns IncorrectInitialPassword`() = runBlocking {
554+
val editPassword = UserEditPassword("oldPassword", "newPassword", "newPassword")
555+
val response = mockk<Response<String>> {
556+
every { code() } returns INTERNAL_SERVER_ERROR
557+
every { errorBody()?.string() } returns "incorrect_password"
558+
}
559+
coEvery { wordpressService.updatePassword(editPassword) } returns response
560+
561+
val result = wordpressRepo.updatePassword(editPassword)
562+
563+
assertEquals(UpdatePasswordResult.IncorrectInitialPassword, result)
564+
}
565+
566+
@Test
567+
fun `updatePassword with password mismatch returns PasswordMismatch`() = runBlocking {
568+
val editPassword = UserEditPassword("oldPassword", "newPassword", "newPassword")
569+
val response = mockk<Response<String>> {
570+
every { code() } returns INTERNAL_SERVER_ERROR
571+
every { errorBody()?.string() } returns "password_mismatch"
572+
}
573+
coEvery { wordpressService.updatePassword(editPassword) } returns response
574+
575+
val result = wordpressRepo.updatePassword(editPassword)
576+
577+
assertEquals(UpdatePasswordResult.PasswordMismatch, result)
578+
}
579+
580+
@Test
581+
fun `updatePassword with unknown error returns NetworkError`() = runBlocking {
582+
val editPassword = UserEditPassword("oldPassword", "newPassword", "newPassword")
583+
val response = mockk<Response<String>> {
584+
every { code() } returns INTERNAL_SERVER_ERROR
585+
every { errorBody() } returns null
586+
}
587+
coEvery { wordpressService.updatePassword(editPassword) } returns response
588+
589+
val result = wordpressRepo.updatePassword(editPassword)
590+
591+
assertEquals(UpdatePasswordResult.NetworkError, result)
592+
}
593+
594+
@Test
595+
fun `updatePassword with network error returns NetworkError`() = runBlocking {
596+
val editPassword = UserEditPassword("oldPassword", "newPassword", "newPassword")
597+
coEvery { wordpressService.updatePassword(editPassword) } throws UnknownHostException()
598+
599+
val result = wordpressRepo.updatePassword(editPassword)
600+
601+
assertEquals(UpdatePasswordResult.NetworkError, result)
602+
}
603+
}
604+
605+
494606
class HandleAuthExceptionsTests : BaseTest() {
495607

496608
@Test

0 commit comments

Comments
 (0)