Skip to content

Commit c9e7425

Browse files
committed
Add unit test to CardClient
1 parent 1123f69 commit c9e7425

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

CardPayments/src/main/java/com/paypal/android/cardpayments/CardClient.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class CardClient internal constructor(
3838
var cardVaultListener: CardVaultListener? = null
3939

4040
private var approveOrderId: String? = null
41-
private val lifeCycleObserver = CardLifeCycleObserver(this)
41+
internal val lifeCycleObserver = CardLifeCycleObserver(this)
4242

4343
private val activityReference = WeakReference(activity)
4444

CardPayments/src/test/java/com/paypal/android/cardpayments/CardClientUnitTest.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ import org.junit.Before
2929
import org.junit.Test
3030
import org.junit.runner.RunWith
3131
import org.robolectric.RobolectricTestRunner
32+
import strikt.api.expectThat
33+
import strikt.assertions.isNull
3234

3335
@ExperimentalCoroutinesApi
3436
@RunWith(RobolectricTestRunner::class)
@@ -359,4 +361,18 @@ class CardClientUnitTest {
359361
sut.cardVaultListener = cardVaultListener
360362
return sut
361363
}
364+
365+
@Test
366+
fun `when client is complete, lifecycle observer is removed`() = runTest {
367+
val sut = createCardClient(testScheduler)
368+
369+
val lifeCycle = mockk<Lifecycle>(relaxed = true)
370+
every { activity.lifecycle } returns lifeCycle
371+
372+
sut.removeObservers()
373+
374+
verify { lifeCycle.removeObserver(sut.lifeCycleObserver) }
375+
expectThat(sut.approveOrderListener).isNull()
376+
expectThat(sut.cardVaultListener).isNull()
377+
}
362378
}

0 commit comments

Comments
 (0)