Add run method to EnsureCalledOnce and EnsureCalledOnceWithParam to ensure that assertSuccess is always called.

This commit is contained in:
Benoit Marty 2024-01-08 09:55:22 +01:00
parent 6798352fb7
commit ba2c297118
2 changed files with 47 additions and 37 deletions

View file

@ -57,7 +57,7 @@ class LogoutViewTest {
@Test @Test
fun `clicking on back invoke back callback`() { fun `clicking on back invoke back callback`() {
val eventsRecorder = EventsRecorder<LogoutEvents>(expectEvents = false) val eventsRecorder = EventsRecorder<LogoutEvents>(expectEvents = false)
val callback = EnsureCalledOnce() EnsureCalledOnce().run { callback ->
rule.setContent { rule.setContent {
LogoutView( LogoutView(
aLogoutState( aLogoutState(
@ -69,7 +69,7 @@ class LogoutViewTest {
) )
} }
rule.pressBack() rule.pressBack()
callback.assertSuccess() }
} }
@Test @Test
@ -112,7 +112,7 @@ class LogoutViewTest {
fun `success logout invoke onSuccessLogout`() { fun `success logout invoke onSuccessLogout`() {
val data = "data" val data = "data"
val eventsRecorder = EventsRecorder<LogoutEvents>(expectEvents = false) val eventsRecorder = EventsRecorder<LogoutEvents>(expectEvents = false)
val callback = EnsureCalledOnceWithParam<String?>(data) EnsureCalledOnceWithParam<String?>(data).run { callback ->
rule.setContent { rule.setContent {
LogoutView( LogoutView(
aLogoutState( aLogoutState(
@ -124,13 +124,13 @@ class LogoutViewTest {
onSuccessLogout = callback, onSuccessLogout = callback,
) )
} }
callback.assertSuccess() }
} }
@Test @Test
fun `last session setting button invoke onChangeRecoveryKeyClicked`() { fun `last session setting button invoke onChangeRecoveryKeyClicked`() {
val eventsRecorder = EventsRecorder<LogoutEvents>(expectEvents = false) val eventsRecorder = EventsRecorder<LogoutEvents>(expectEvents = false)
val callback = EnsureCalledOnce() EnsureCalledOnce().run { callback ->
rule.setContent { rule.setContent {
LogoutView( LogoutView(
aLogoutState( aLogoutState(
@ -143,6 +143,6 @@ class LogoutViewTest {
) )
} }
rule.clickOn(CommonStrings.common_settings) rule.clickOn(CommonStrings.common_settings)
callback.assertSuccess() }
} }
} }

View file

@ -27,6 +27,11 @@ class EnsureCalledOnce : () -> Unit {
throw AssertionError("Expected to be called once, but was called $counter times") throw AssertionError("Expected to be called once, but was called $counter times")
} }
} }
fun run(block: (callback: EnsureCalledOnce) -> Unit) {
block(this)
assertSuccess()
}
} }
class EnsureCalledOnceWithParam<T>( class EnsureCalledOnceWithParam<T>(
@ -45,4 +50,9 @@ class EnsureCalledOnceWithParam<T>(
throw AssertionError("Expected to be called once, but was called $counter times") throw AssertionError("Expected to be called once, but was called $counter times")
} }
} }
fun run(block: (callback: EnsureCalledOnceWithParam<T>) -> Unit) {
block(this)
assertSuccess()
}
} }