Adding new method into navigator

This commit is contained in:
Maxime NATUREL 2022-09-19 14:03:10 +02:00
parent 1091ae41ad
commit 3de96a3a0c
3 changed files with 31 additions and 3 deletions

View File

@ -118,7 +118,7 @@ class SessionOverviewFragment :
private fun updateEntryDetails(deviceId: String) { private fun updateEntryDetails(deviceId: String) {
views.sessionOverviewEntryDetails.setOnClickListener { views.sessionOverviewEntryDetails.setOnClickListener {
viewNavigator.navigateToSessionDetails(requireContext(), deviceId) viewNavigator.goToSessionDetails(requireContext(), deviceId)
} }
} }

View File

@ -18,11 +18,16 @@ package im.vector.app.features.settings.devices.v2.overview
import android.content.Context import android.content.Context
import im.vector.app.features.settings.devices.v2.details.SessionDetailsActivity import im.vector.app.features.settings.devices.v2.details.SessionDetailsActivity
import im.vector.app.features.settings.devices.v2.rename.RenameSessionActivity
import javax.inject.Inject import javax.inject.Inject
class SessionOverviewViewNavigator @Inject constructor() { class SessionOverviewViewNavigator @Inject constructor() {
fun navigateToSessionDetails(context: Context, deviceId: String) { fun goToSessionDetails(context: Context, deviceId: String) {
context.startActivity(SessionDetailsActivity.newIntent(context, deviceId)) context.startActivity(SessionDetailsActivity.newIntent(context, deviceId))
} }
fun goToRenameSession(context: Context, deviceId: String) {
context.startActivity(RenameSessionActivity.newIntent(context, deviceId))
}
} }

View File

@ -18,6 +18,7 @@ package im.vector.app.features.settings.devices.v2.overview
import android.content.Intent import android.content.Intent
import im.vector.app.features.settings.devices.v2.details.SessionDetailsActivity import im.vector.app.features.settings.devices.v2.details.SessionDetailsActivity
import im.vector.app.features.settings.devices.v2.rename.RenameSessionActivity
import im.vector.app.test.fakes.FakeContext import im.vector.app.test.fakes.FakeContext
import io.mockk.every import io.mockk.every
import io.mockk.mockk import io.mockk.mockk
@ -38,6 +39,7 @@ class SessionOverviewViewNavigatorTest {
@Before @Before
fun setUp() { fun setUp() {
mockkObject(SessionDetailsActivity) mockkObject(SessionDetailsActivity)
mockkObject(RenameSessionActivity)
} }
@After @After
@ -52,7 +54,22 @@ class SessionOverviewViewNavigatorTest {
context.givenStartActivity(intent) context.givenStartActivity(intent)
// When // When
sessionOverviewViewNavigator.navigateToSessionDetails(context.instance, A_SESSION_ID) sessionOverviewViewNavigator.goToSessionDetails(context.instance, A_SESSION_ID)
// Then
verify {
context.instance.startActivity(intent)
}
}
@Test
fun `given a session id when navigating to rename screen then it starts the correct activity`() {
// Given
val intent = givenIntentForRenameSession(A_SESSION_ID)
context.givenStartActivity(intent)
// When
sessionOverviewViewNavigator.goToRenameSession(context.instance, A_SESSION_ID)
// Then // Then
verify { verify {
@ -65,4 +82,10 @@ class SessionOverviewViewNavigatorTest {
every { SessionDetailsActivity.newIntent(context.instance, sessionId) } returns intent every { SessionDetailsActivity.newIntent(context.instance, sessionId) } returns intent
return intent return intent
} }
private fun givenIntentForRenameSession(sessionId: String): Intent {
val intent = mockk<Intent>()
every { RenameSessionActivity.newIntent(context.instance, sessionId) } returns intent
return intent
}
} }