@@ -10,7 +10,7 @@ import androidx.core.app.ActivityOptionsCompat
10
10
import androidx.test.core.app.ApplicationProvider
11
11
import app.cash.turbine.ReceiveTurbine
12
12
import app.cash.turbine.Turbine
13
- import com.google.common.truth.Truth
13
+ import com.google.common.truth.Truth.assertThat
14
14
import kotlinx.coroutines.test.runTest
15
15
import org.junit.Test
16
16
import org.junit.runner.RunWith
@@ -25,16 +25,18 @@ class CardScanGoogleLauncherTest {
25
25
26
26
val scanResult = launcher.parseActivityResult(result)
27
27
28
- Truth . assertThat(scanResult).isInstanceOf(CardScanResult .Canceled ::class .java)
28
+ assertThat(scanResult).isInstanceOf(CardScanResult .Canceled ::class .java)
29
29
}
30
30
31
31
@Test
32
- fun `parseActivityResult with RESULT_OK but null data returns Canceled ` () = runScenario {
32
+ fun `parseActivityResult with RESULT_OK but null data returns Failed ` () = runScenario {
33
33
val result = ActivityResult (Activity .RESULT_OK , null )
34
34
35
35
val scanResult = launcher.parseActivityResult(result)
36
36
37
- Truth .assertThat(scanResult).isInstanceOf(CardScanResult .Canceled ::class .java)
37
+ assertThat(scanResult).isInstanceOf(CardScanResult .Failed ::class .java)
38
+ val failedResult = scanResult as CardScanResult .Failed
39
+ assertThat(failedResult.error.message).isEqualTo(" Null data or unexpected result code: -1" )
38
40
}
39
41
40
42
@Test
@@ -47,33 +49,35 @@ class CardScanGoogleLauncherTest {
47
49
48
50
val scanResult = launcher.parseActivityResult(result)
49
51
50
- Truth . assertThat(scanResult).isInstanceOf(CardScanResult .Failed ::class .java)
52
+ assertThat(scanResult).isInstanceOf(CardScanResult .Failed ::class .java)
51
53
val failedResult = scanResult as CardScanResult .Failed
52
- Truth . assertThat(failedResult.error.message).isEqualTo(" Failed to parse card data" )
54
+ assertThat(failedResult.error.message).isEqualTo(" Failed to parse card data" )
53
55
}
54
56
55
57
@Test
56
- fun `parseActivityResult with custom result code returns Canceled ` () = runScenario {
58
+ fun `parseActivityResult with custom result code returns Failed ` () = runScenario {
57
59
val result = ActivityResult (123 , null ) // Some other result code
58
60
59
61
val scanResult = launcher.parseActivityResult(result)
60
62
61
- Truth .assertThat(scanResult).isInstanceOf(CardScanResult .Canceled ::class .java)
63
+ assertThat(scanResult).isInstanceOf(CardScanResult .Failed ::class .java)
64
+ val failedResult = scanResult as CardScanResult .Failed
65
+ assertThat(failedResult.error.message).isEqualTo(" Null data or unexpected result code: 123" )
62
66
}
63
67
64
68
@Test
65
69
fun `card scan launcher should be able to launch card scan activity` () = runScenario {
66
- Truth . assertThat(launcher.isAvailable.value).isTrue()
70
+ assertThat(launcher.isAvailable.value).isTrue()
67
71
68
72
launcher.launch(ApplicationProvider .getApplicationContext())
69
- Truth . assertThat(activityLauncher.launchCall.awaitItem()).isEqualTo(Unit )
73
+ assertThat(activityLauncher.launchCall.awaitItem()).isEqualTo(Unit )
70
74
}
71
75
72
76
@Test
73
77
fun `card scan launcher should not be available when fetchIntent fails` () = runScenario(
74
- isFetchClientSuccess = false
78
+ isFetchClientSucceed = false
75
79
) {
76
- Truth . assertThat(launcher.isAvailable.value).isFalse()
80
+ assertThat(launcher.isAvailable.value).isFalse()
77
81
launcher.launch(ApplicationProvider .getApplicationContext())
78
82
// No launch call should be made since fetchIntent failed
79
83
}
@@ -103,13 +107,13 @@ class CardScanGoogleLauncherTest {
103
107
)
104
108
105
109
private fun runScenario (
106
- isFetchClientSuccess : Boolean = true,
110
+ isFetchClientSucceed : Boolean = true,
107
111
block : suspend Scenario .() -> Unit
108
112
) = runTest {
109
113
val activityLauncher = FakeActivityLauncher <IntentSenderRequest >()
110
114
val launcher = CardScanGoogleLauncher (
111
115
context = ApplicationProvider .getApplicationContext(),
112
- paymentCardRecognitionClient = FakePaymentCardRecognitionClient (isFetchClientSuccess )
116
+ paymentCardRecognitionClient = FakePaymentCardRecognitionClient (isFetchClientSucceed )
113
117
).apply {
114
118
this .activityLauncher = activityLauncher
115
119
}
0 commit comments