@klarna/react-native-klarna-network-payment 0.0.1 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +143 -29
- package/android/build.gradle +95 -0
- package/android/src/main/AndroidManifest.xml +1 -0
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaNetworkPaymentButtonViewSpec.kt +22 -0
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaNetworkPaymentModule.kt +46 -0
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaNetworkPaymentModuleImpl.kt +163 -0
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaNetworkPaymentPackage.kt +30 -0
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentButtonPressEvent.kt +19 -0
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentButtonViewManager.kt +276 -0
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentPresentationMapper.kt +132 -0
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentRequestMapper.kt +328 -0
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentResponseMapper.kt +145 -0
- package/android/src/test/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaNetworkPaymentModuleImplTest.kt +361 -0
- package/android/src/test/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentButtonViewManagerTest.kt +155 -0
- package/android/src/test/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentPresentationMapperTest.kt +447 -0
- package/android/src/test/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentRequestMapperTest.kt +489 -0
- package/android/src/test/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentResponseMapperTest.kt +456 -0
- package/ios/Sources/KlarnaNetworkPayment.h +5 -0
- package/ios/Sources/KlarnaNetworkPayment.mm +110 -0
- package/ios/Sources/KlarnaNetworkPaymentModuleImpl.swift +196 -0
- package/ios/Sources/KlarnaPaymentButtonComponentView.mm +147 -0
- package/ios/Sources/KlarnaPaymentButtonViewImpl.swift +78 -0
- package/ios/Sources/KlarnaPaymentPresentationMapping.swift +102 -0
- package/ios/Sources/KlarnaPaymentRequestDataMapping.swift +232 -0
- package/ios/Sources/KlarnaPaymentRequestMapping.swift +103 -0
- package/ios/Tests/KlarnaNetworkPaymentModuleImplTests.swift +143 -0
- package/ios/Tests/KlarnaPaymentButtonViewImplTests.swift +122 -0
- package/ios/Tests/KlarnaPaymentPresentationMappingTests.swift +335 -0
- package/lib/commonjs/KlarnaNetworkPayment.js +6 -0
- package/lib/commonjs/KlarnaNetworkPayment.js.map +1 -0
- package/lib/commonjs/KlarnaNetworkPaymentImpl.js +44 -0
- package/lib/commonjs/KlarnaNetworkPaymentImpl.js.map +1 -0
- package/lib/commonjs/KlarnaNetworkPaymentMapper.js +164 -0
- package/lib/commonjs/KlarnaNetworkPaymentMapper.js.map +1 -0
- package/lib/commonjs/KlarnaPaymentButton.js +43 -0
- package/lib/commonjs/KlarnaPaymentButton.js.map +1 -0
- package/lib/commonjs/Specs/KlarnaPaymentButtonNativeComponent.js +10 -0
- package/lib/commonjs/Specs/KlarnaPaymentButtonNativeComponent.js.map +1 -0
- package/lib/commonjs/Specs/NativeKlarnaNetworkPayment.js +13 -0
- package/lib/commonjs/Specs/NativeKlarnaNetworkPayment.js.map +1 -0
- package/lib/commonjs/index.js +51 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/types/KlarnaPaymentRequest.js +6 -0
- package/lib/commonjs/types/KlarnaPaymentRequest.js.map +1 -0
- package/lib/commonjs/types/KlarnaPaymentRequestState.js +2 -0
- package/lib/commonjs/types/KlarnaPaymentRequestState.js.map +1 -0
- package/lib/commonjs/types/KlarnaPaymentRequestStateContext.js +6 -0
- package/lib/commonjs/types/KlarnaPaymentRequestStateContext.js.map +1 -0
- package/lib/commonjs/types/KlarnaPaymentRequestStateReason.js +2 -0
- package/lib/commonjs/types/KlarnaPaymentRequestStateReason.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaBillingPlan.js +6 -0
- package/lib/commonjs/types/models/KlarnaBillingPlan.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaCollectCustomerProfileType.js +2 -0
- package/lib/commonjs/types/models/KlarnaCollectCustomerProfileType.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaCustomer.js +6 -0
- package/lib/commonjs/types/models/KlarnaCustomer.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaFreeTrial.js +2 -0
- package/lib/commonjs/types/models/KlarnaFreeTrial.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaInterval.js +2 -0
- package/lib/commonjs/types/models/KlarnaInterval.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaLineItem.js +2 -0
- package/lib/commonjs/types/models/KlarnaLineItem.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaOndemandService.js +6 -0
- package/lib/commonjs/types/models/KlarnaOndemandService.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaPartnerCustomer.js +6 -0
- package/lib/commonjs/types/models/KlarnaPartnerCustomer.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaPaymentPresentation.js +6 -0
- package/lib/commonjs/types/models/KlarnaPaymentPresentation.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaPaymentRequestData.js +6 -0
- package/lib/commonjs/types/models/KlarnaPaymentRequestData.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaRequestCustomerToken.js +6 -0
- package/lib/commonjs/types/models/KlarnaRequestCustomerToken.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaRequestCustomerTokenScope.js +2 -0
- package/lib/commonjs/types/models/KlarnaRequestCustomerTokenScope.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaShipping.js +6 -0
- package/lib/commonjs/types/models/KlarnaShipping.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaShippingConfig.js +6 -0
- package/lib/commonjs/types/models/KlarnaShippingConfig.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaShippingConfigMode.js +2 -0
- package/lib/commonjs/types/models/KlarnaShippingConfigMode.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaShippingOption.js +6 -0
- package/lib/commonjs/types/models/KlarnaShippingOption.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaShippingRecipient.js +2 -0
- package/lib/commonjs/types/models/KlarnaShippingRecipient.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaShippingType.js +2 -0
- package/lib/commonjs/types/models/KlarnaShippingType.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaShippingTypeAttribute.js +2 -0
- package/lib/commonjs/types/models/KlarnaShippingTypeAttribute.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaSubscription.js +6 -0
- package/lib/commonjs/types/models/KlarnaSubscription.js.map +1 -0
- package/lib/commonjs/types/models/KlarnaSupplementaryPurchaseData.js +6 -0
- package/lib/commonjs/types/models/KlarnaSupplementaryPurchaseData.js.map +1 -0
- package/lib/commonjs/types/models/index.js +2 -0
- package/lib/commonjs/types/models/index.js.map +1 -0
- package/lib/module/KlarnaNetworkPayment.js +2 -0
- package/lib/module/KlarnaNetworkPayment.js.map +1 -0
- package/lib/module/KlarnaNetworkPaymentImpl.js +36 -0
- package/lib/module/KlarnaNetworkPaymentImpl.js.map +1 -0
- package/lib/module/KlarnaNetworkPaymentMapper.js +146 -0
- package/lib/module/KlarnaNetworkPaymentMapper.js.map +1 -0
- package/lib/module/KlarnaPaymentButton.js +37 -0
- package/lib/module/KlarnaPaymentButton.js.map +1 -0
- package/lib/module/Specs/KlarnaPaymentButtonNativeComponent.js +3 -0
- package/lib/module/Specs/KlarnaPaymentButtonNativeComponent.js.map +1 -0
- package/lib/module/Specs/NativeKlarnaNetworkPayment.js +9 -0
- package/lib/module/Specs/NativeKlarnaNetworkPayment.js.map +1 -0
- package/lib/module/index.js +40 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/types/KlarnaPaymentRequest.js +2 -0
- package/lib/module/types/KlarnaPaymentRequest.js.map +1 -0
- package/lib/module/types/KlarnaPaymentRequestState.js +2 -0
- package/lib/module/types/KlarnaPaymentRequestState.js.map +1 -0
- package/lib/module/types/KlarnaPaymentRequestStateContext.js +2 -0
- package/lib/module/types/KlarnaPaymentRequestStateContext.js.map +1 -0
- package/lib/module/types/KlarnaPaymentRequestStateReason.js +2 -0
- package/lib/module/types/KlarnaPaymentRequestStateReason.js.map +1 -0
- package/lib/module/types/models/KlarnaBillingPlan.js +2 -0
- package/lib/module/types/models/KlarnaBillingPlan.js.map +1 -0
- package/lib/module/types/models/KlarnaCollectCustomerProfileType.js +2 -0
- package/lib/module/types/models/KlarnaCollectCustomerProfileType.js.map +1 -0
- package/lib/module/types/models/KlarnaCustomer.js +2 -0
- package/lib/module/types/models/KlarnaCustomer.js.map +1 -0
- package/lib/module/types/models/KlarnaFreeTrial.js +2 -0
- package/lib/module/types/models/KlarnaFreeTrial.js.map +1 -0
- package/lib/module/types/models/KlarnaInterval.js +2 -0
- package/lib/module/types/models/KlarnaInterval.js.map +1 -0
- package/lib/module/types/models/KlarnaLineItem.js +2 -0
- package/lib/module/types/models/KlarnaLineItem.js.map +1 -0
- package/lib/module/types/models/KlarnaOndemandService.js +2 -0
- package/lib/module/types/models/KlarnaOndemandService.js.map +1 -0
- package/lib/module/types/models/KlarnaPartnerCustomer.js +2 -0
- package/lib/module/types/models/KlarnaPartnerCustomer.js.map +1 -0
- package/lib/module/types/models/KlarnaPaymentPresentation.js +2 -0
- package/lib/module/types/models/KlarnaPaymentPresentation.js.map +1 -0
- package/lib/module/types/models/KlarnaPaymentRequestData.js +2 -0
- package/lib/module/types/models/KlarnaPaymentRequestData.js.map +1 -0
- package/lib/module/types/models/KlarnaRequestCustomerToken.js +2 -0
- package/lib/module/types/models/KlarnaRequestCustomerToken.js.map +1 -0
- package/lib/module/types/models/KlarnaRequestCustomerTokenScope.js +2 -0
- package/lib/module/types/models/KlarnaRequestCustomerTokenScope.js.map +1 -0
- package/lib/module/types/models/KlarnaShipping.js +2 -0
- package/lib/module/types/models/KlarnaShipping.js.map +1 -0
- package/lib/module/types/models/KlarnaShippingConfig.js +2 -0
- package/lib/module/types/models/KlarnaShippingConfig.js.map +1 -0
- package/lib/module/types/models/KlarnaShippingConfigMode.js +2 -0
- package/lib/module/types/models/KlarnaShippingConfigMode.js.map +1 -0
- package/lib/module/types/models/KlarnaShippingOption.js +2 -0
- package/lib/module/types/models/KlarnaShippingOption.js.map +1 -0
- package/lib/module/types/models/KlarnaShippingRecipient.js +2 -0
- package/lib/module/types/models/KlarnaShippingRecipient.js.map +1 -0
- package/lib/module/types/models/KlarnaShippingType.js +2 -0
- package/lib/module/types/models/KlarnaShippingType.js.map +1 -0
- package/lib/module/types/models/KlarnaShippingTypeAttribute.js +2 -0
- package/lib/module/types/models/KlarnaShippingTypeAttribute.js.map +1 -0
- package/lib/module/types/models/KlarnaSubscription.js +2 -0
- package/lib/module/types/models/KlarnaSubscription.js.map +1 -0
- package/lib/module/types/models/KlarnaSupplementaryPurchaseData.js +2 -0
- package/lib/module/types/models/KlarnaSupplementaryPurchaseData.js.map +1 -0
- package/lib/module/types/models/index.js +2 -0
- package/lib/module/types/models/index.js.map +1 -0
- package/lib/typescript/KlarnaNetworkPayment.d.ts +22 -0
- package/lib/typescript/KlarnaNetworkPayment.d.ts.map +1 -0
- package/lib/typescript/KlarnaNetworkPaymentImpl.d.ts +12 -0
- package/lib/typescript/KlarnaNetworkPaymentImpl.d.ts.map +1 -0
- package/lib/typescript/KlarnaNetworkPaymentMapper.d.ts +273 -0
- package/lib/typescript/KlarnaNetworkPaymentMapper.d.ts.map +1 -0
- package/lib/typescript/KlarnaPaymentButton.d.ts +51 -0
- package/lib/typescript/KlarnaPaymentButton.d.ts.map +1 -0
- package/lib/typescript/Specs/KlarnaPaymentButtonNativeComponent.d.ts +16 -0
- package/lib/typescript/Specs/KlarnaPaymentButtonNativeComponent.d.ts.map +1 -0
- package/lib/typescript/Specs/NativeKlarnaNetworkPayment.d.ts +13 -0
- package/lib/typescript/Specs/NativeKlarnaNetworkPayment.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +14 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/types/KlarnaPaymentRequest.d.ts +19 -0
- package/lib/typescript/types/KlarnaPaymentRequest.d.ts.map +1 -0
- package/lib/typescript/types/KlarnaPaymentRequestState.d.ts +15 -0
- package/lib/typescript/types/KlarnaPaymentRequestState.d.ts.map +1 -0
- package/lib/typescript/types/KlarnaPaymentRequestStateContext.d.ts +12 -0
- package/lib/typescript/types/KlarnaPaymentRequestStateContext.d.ts.map +1 -0
- package/lib/typescript/types/KlarnaPaymentRequestStateReason.d.ts +13 -0
- package/lib/typescript/types/KlarnaPaymentRequestStateReason.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaBillingPlan.d.ts +17 -0
- package/lib/typescript/types/models/KlarnaBillingPlan.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaCollectCustomerProfileType.d.ts +19 -0
- package/lib/typescript/types/models/KlarnaCollectCustomerProfileType.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaCustomer.d.ts +11 -0
- package/lib/typescript/types/models/KlarnaCustomer.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaFreeTrial.d.ts +7 -0
- package/lib/typescript/types/models/KlarnaFreeTrial.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaInterval.d.ts +11 -0
- package/lib/typescript/types/models/KlarnaInterval.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaLineItem.d.ts +28 -0
- package/lib/typescript/types/models/KlarnaLineItem.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaOndemandService.d.ts +17 -0
- package/lib/typescript/types/models/KlarnaOndemandService.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaPartnerCustomer.d.ts +15 -0
- package/lib/typescript/types/models/KlarnaPartnerCustomer.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaPaymentPresentation.d.ts +119 -0
- package/lib/typescript/types/models/KlarnaPaymentPresentation.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaPaymentRequestData.d.ts +24 -0
- package/lib/typescript/types/models/KlarnaPaymentRequestData.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaRequestCustomerToken.d.ts +9 -0
- package/lib/typescript/types/models/KlarnaRequestCustomerToken.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaRequestCustomerTokenScope.d.ts +9 -0
- package/lib/typescript/types/models/KlarnaRequestCustomerTokenScope.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaShipping.d.ts +15 -0
- package/lib/typescript/types/models/KlarnaShipping.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaShippingConfig.d.ts +9 -0
- package/lib/typescript/types/models/KlarnaShippingConfig.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaShippingConfigMode.d.ts +5 -0
- package/lib/typescript/types/models/KlarnaShippingConfigMode.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaShippingOption.d.ts +12 -0
- package/lib/typescript/types/models/KlarnaShippingOption.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaShippingRecipient.d.ts +14 -0
- package/lib/typescript/types/models/KlarnaShippingRecipient.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaShippingType.d.ts +25 -0
- package/lib/typescript/types/models/KlarnaShippingType.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaShippingTypeAttribute.d.ts +21 -0
- package/lib/typescript/types/models/KlarnaShippingTypeAttribute.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaSubscription.d.ts +14 -0
- package/lib/typescript/types/models/KlarnaSubscription.d.ts.map +1 -0
- package/lib/typescript/types/models/KlarnaSupplementaryPurchaseData.d.ts +21 -0
- package/lib/typescript/types/models/KlarnaSupplementaryPurchaseData.d.ts.map +1 -0
- package/lib/typescript/types/models/index.d.ts +22 -0
- package/lib/typescript/types/models/index.d.ts.map +1 -0
- package/package.json +120 -6
- package/react-native-klarna-network-payment.podspec +29 -0
- package/src/KlarnaNetworkPayment.ts +30 -0
- package/src/KlarnaNetworkPaymentImpl.ts +79 -0
- package/src/KlarnaNetworkPaymentMapper.ts +204 -0
- package/src/KlarnaPaymentButton.tsx +80 -0
- package/src/Specs/KlarnaPaymentButtonNativeComponent.ts +22 -0
- package/src/Specs/NativeKlarnaNetworkPayment.ts +17 -0
- package/src/index.tsx +63 -0
- package/src/types/KlarnaPaymentRequest.ts +19 -0
- package/src/types/KlarnaPaymentRequestState.ts +14 -0
- package/src/types/KlarnaPaymentRequestStateContext.ts +12 -0
- package/src/types/KlarnaPaymentRequestStateReason.ts +12 -0
- package/src/types/models/KlarnaBillingPlan.ts +17 -0
- package/src/types/models/KlarnaCollectCustomerProfileType.ts +18 -0
- package/src/types/models/KlarnaCustomer.ts +11 -0
- package/src/types/models/KlarnaFreeTrial.ts +6 -0
- package/src/types/models/KlarnaInterval.ts +10 -0
- package/src/types/models/KlarnaLineItem.ts +27 -0
- package/src/types/models/KlarnaOndemandService.ts +17 -0
- package/src/types/models/KlarnaPartnerCustomer.ts +15 -0
- package/src/types/models/KlarnaPaymentPresentation.ts +135 -0
- package/src/types/models/KlarnaPaymentRequestData.ts +24 -0
- package/src/types/models/KlarnaRequestCustomerToken.ts +9 -0
- package/src/types/models/KlarnaRequestCustomerTokenScope.ts +8 -0
- package/src/types/models/KlarnaShipping.ts +15 -0
- package/src/types/models/KlarnaShippingConfig.ts +9 -0
- package/src/types/models/KlarnaShippingConfigMode.ts +4 -0
- package/src/types/models/KlarnaShippingOption.ts +12 -0
- package/src/types/models/KlarnaShippingRecipient.ts +13 -0
- package/src/types/models/KlarnaShippingType.ts +24 -0
- package/src/types/models/KlarnaShippingTypeAttribute.ts +20 -0
- package/src/types/models/KlarnaSubscription.ts +14 -0
- package/src/types/models/KlarnaSupplementaryPurchaseData.ts +21 -0
- package/src/types/models/index.ts +35 -0
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
package com.klarna.mobile.sdk.reactnative.klarnanetwork.payment
|
|
2
|
+
|
|
3
|
+
import android.app.Activity
|
|
4
|
+
import com.facebook.react.bridge.Arguments
|
|
5
|
+
import com.facebook.react.bridge.Promise
|
|
6
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
7
|
+
import com.facebook.react.bridge.ReadableMap
|
|
8
|
+
import com.klarna.mobile.sdk.klarna.network.core.api.common.KlarnaResult
|
|
9
|
+
import com.klarna.mobile.sdk.klarna.network.core.api.common.KlarnaSDKError
|
|
10
|
+
import com.klarna.mobile.sdk.klarna.network.core.api.klarna.Klarna
|
|
11
|
+
import com.klarna.mobile.sdk.klarna.network.payment.api.KlarnaPayment
|
|
12
|
+
import com.klarna.mobile.sdk.klarna.network.payment.api.KlarnaPaymentRequest
|
|
13
|
+
import com.klarna.mobile.sdk.klarna.network.payment.api.presentation.KlarnaPaymentPresentation
|
|
14
|
+
import com.klarna.mobile.sdk.klarna.network.payment.api.presentation.models.KlarnaPaymentPresentationContent
|
|
15
|
+
import com.klarna.mobile.sdk.klarna.network.payment.api.models.KlarnaPaymentRequestData
|
|
16
|
+
import com.klarna.mobile.sdk.klarna.network.payment.api.payment
|
|
17
|
+
import com.klarna.mobile.sdk.reactnative.klarnanetwork.core.KlarnaNetworkCoreModuleImpl
|
|
18
|
+
import android.os.Handler
|
|
19
|
+
import android.os.Looper
|
|
20
|
+
import io.mockk.every
|
|
21
|
+
import io.mockk.mockk
|
|
22
|
+
import io.mockk.mockkConstructor
|
|
23
|
+
import io.mockk.mockkStatic
|
|
24
|
+
import io.mockk.unmockkAll
|
|
25
|
+
import io.mockk.verify
|
|
26
|
+
import org.junit.After
|
|
27
|
+
import org.junit.Before
|
|
28
|
+
import org.junit.Test
|
|
29
|
+
|
|
30
|
+
class KlarnaNetworkPaymentModuleImplTest {
|
|
31
|
+
|
|
32
|
+
private val errorInstanceNotFound = "No instance found for the given instanceId. Call initialize first."
|
|
33
|
+
private val errorActivityNotFound = "Main Activity not found."
|
|
34
|
+
private val errorDataRequired = "data is required"
|
|
35
|
+
private val errorAmountRequired = "Amount is required"
|
|
36
|
+
private val errorCurrencyRequired = "Currency is required"
|
|
37
|
+
|
|
38
|
+
private val mockActivity = mockk<Activity>(relaxed = true)
|
|
39
|
+
private val mockContext = mockk<ReactApplicationContext>(relaxed = true)
|
|
40
|
+
private val mockPromise = mockk<Promise>(relaxed = true)
|
|
41
|
+
private val mockKlarna = mockk<Klarna>(relaxed = true)
|
|
42
|
+
private val mockPayment = mockk<KlarnaPayment>(relaxed = true)
|
|
43
|
+
private val mockPaymentRequest = mockk<KlarnaPaymentRequest>(relaxed = true)
|
|
44
|
+
private val mockPresentation = mockk<KlarnaPaymentPresentation>(relaxed = true)
|
|
45
|
+
|
|
46
|
+
private lateinit var impl: KlarnaNetworkPaymentModuleImpl
|
|
47
|
+
|
|
48
|
+
@Before
|
|
49
|
+
fun setUp() {
|
|
50
|
+
mockkStatic("com.klarna.mobile.sdk.klarna.network.payment.api.KlarnaPaymentKt")
|
|
51
|
+
mockkStatic(Arguments::class)
|
|
52
|
+
mockkConstructor(Handler::class)
|
|
53
|
+
every { Arguments.createMap() } returns mockk(relaxed = true)
|
|
54
|
+
every { Arguments.createArray() } returns mockk(relaxed = true)
|
|
55
|
+
every { mockKlarna.payment } returns mockPayment
|
|
56
|
+
every { mockPayment.presentation } returns mockPresentation
|
|
57
|
+
every { mockContext.currentActivity } returns mockActivity
|
|
58
|
+
every { anyConstructed<Handler>().post(any()) } answers {
|
|
59
|
+
firstArg<Runnable>().run()
|
|
60
|
+
true
|
|
61
|
+
}
|
|
62
|
+
impl = KlarnaNetworkPaymentModuleImpl(mockContext)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@After
|
|
66
|
+
fun tearDown() {
|
|
67
|
+
KlarnaNetworkCoreModuleImpl.instances.clear()
|
|
68
|
+
KlarnaNetworkPaymentModuleImpl.storedPresentationContent.clear()
|
|
69
|
+
unmockkAll()
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// region Helpers
|
|
73
|
+
|
|
74
|
+
private fun givenInitializeSucceeds(instanceId: String = "inst_1") {
|
|
75
|
+
KlarnaNetworkCoreModuleImpl.instances[instanceId] = mockKlarna
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
private fun givenInitiateWithIdSucceeds(instanceId: String = "inst_1") {
|
|
79
|
+
every {
|
|
80
|
+
mockPayment.initiate(activity = any(), paymentRequestId = any(), callback = any())
|
|
81
|
+
} answers {
|
|
82
|
+
thirdArg<(KlarnaResult<KlarnaPaymentRequest, KlarnaSDKError>) -> Unit>()
|
|
83
|
+
.invoke(KlarnaResult.Success(mockPaymentRequest))
|
|
84
|
+
}
|
|
85
|
+
givenInitializeSucceeds(instanceId)
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
private fun givenInitiateWithDataSucceeds(instanceId: String = "inst_1") {
|
|
89
|
+
every {
|
|
90
|
+
mockPayment.initiate(activity = any(), paymentRequestData = any(), callback = any())
|
|
91
|
+
} answers {
|
|
92
|
+
thirdArg<(KlarnaResult<KlarnaPaymentRequest, KlarnaSDKError>) -> Unit>()
|
|
93
|
+
.invoke(KlarnaResult.Success(mockPaymentRequest))
|
|
94
|
+
}
|
|
95
|
+
givenInitializeSucceeds(instanceId)
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
private fun givenFetchSucceeds(instanceId: String = "inst_1") {
|
|
99
|
+
every {
|
|
100
|
+
mockPayment.fetch(paymentRequestId = any(), callback = any())
|
|
101
|
+
} answers {
|
|
102
|
+
secondArg<(KlarnaResult<KlarnaPaymentRequest, KlarnaSDKError>) -> Unit>()
|
|
103
|
+
.invoke(KlarnaResult.Success(mockPaymentRequest))
|
|
104
|
+
}
|
|
105
|
+
givenInitializeSucceeds(instanceId)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
private fun givenCancelSucceeds(instanceId: String = "inst_1") {
|
|
109
|
+
every {
|
|
110
|
+
mockPayment.cancel(paymentRequestId = any(), callback = any())
|
|
111
|
+
} answers {
|
|
112
|
+
secondArg<(KlarnaResult<KlarnaPaymentRequest, KlarnaSDKError>) -> Unit>()
|
|
113
|
+
.invoke(KlarnaResult.Success(mockPaymentRequest))
|
|
114
|
+
}
|
|
115
|
+
givenInitializeSucceeds(instanceId)
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
private fun mockError(name: String = "error_name", message: String = "error_message"): KlarnaSDKError =
|
|
119
|
+
mockk {
|
|
120
|
+
every { this@mockk.name } returns name
|
|
121
|
+
every { this@mockk.message } returns message
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
private fun mockValidPaymentData(): ReadableMap = mockk(relaxed = true) {
|
|
125
|
+
every { hasKey("amount") } returns true
|
|
126
|
+
every { getString("currency") } returns "USD"
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// endregion
|
|
130
|
+
|
|
131
|
+
// region initiateWithId
|
|
132
|
+
|
|
133
|
+
@Test
|
|
134
|
+
fun `initiateWithId - rejects when instance not found`() {
|
|
135
|
+
impl.initiateWithId("unknown_id", "pr_1", mockPromise)
|
|
136
|
+
verify { mockPromise.reject(KlarnaNetworkPaymentModuleImpl.NAME, errorInstanceNotFound) }
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
@Test
|
|
140
|
+
fun `initiateWithId - rejects when activity not found`() {
|
|
141
|
+
givenInitializeSucceeds()
|
|
142
|
+
every { mockContext.currentActivity } returns null
|
|
143
|
+
impl.initiateWithId("inst_1", "pr_1", mockPromise)
|
|
144
|
+
verify { mockPromise.reject(KlarnaNetworkPaymentModuleImpl.NAME, errorActivityNotFound) }
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
@Test
|
|
148
|
+
fun `initiateWithId - resolves on success`() {
|
|
149
|
+
givenInitiateWithIdSucceeds()
|
|
150
|
+
impl.initiateWithId("inst_1", "pr_1", mockPromise)
|
|
151
|
+
verify { mockPromise.resolve(any()) }
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
@Test
|
|
155
|
+
fun `initiateWithId - rejects on native failure`() {
|
|
156
|
+
givenInitializeSucceeds()
|
|
157
|
+
val error = mockError()
|
|
158
|
+
every {
|
|
159
|
+
mockPayment.initiate(activity = any(), paymentRequestId = any(), callback = any())
|
|
160
|
+
} answers {
|
|
161
|
+
thirdArg<(KlarnaResult<KlarnaPaymentRequest, KlarnaSDKError>) -> Unit>()
|
|
162
|
+
.invoke(KlarnaResult.Failure(error))
|
|
163
|
+
}
|
|
164
|
+
impl.initiateWithId("inst_1", "pr_1", mockPromise)
|
|
165
|
+
verify { mockPromise.reject("error_name", "error_message") }
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// endregion
|
|
169
|
+
|
|
170
|
+
// region initiateWithData
|
|
171
|
+
|
|
172
|
+
@Test
|
|
173
|
+
fun `initiateWithData - rejects when instance not found`() {
|
|
174
|
+
val data = mockk<ReadableMap>(relaxed = true)
|
|
175
|
+
impl.initiateWithData("unknown_id", data, mockPromise)
|
|
176
|
+
verify { mockPromise.reject(KlarnaNetworkPaymentModuleImpl.NAME, errorInstanceNotFound) }
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
@Test
|
|
180
|
+
fun `initiateWithData - rejects when activity not found`() {
|
|
181
|
+
givenInitializeSucceeds()
|
|
182
|
+
every { mockContext.currentActivity } returns null
|
|
183
|
+
val data = mockk<ReadableMap>(relaxed = true)
|
|
184
|
+
impl.initiateWithData("inst_1", data, mockPromise)
|
|
185
|
+
verify { mockPromise.reject(KlarnaNetworkPaymentModuleImpl.NAME, errorActivityNotFound) }
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
@Test
|
|
189
|
+
fun `initiateWithData - rejects when data is null`() {
|
|
190
|
+
givenInitializeSucceeds()
|
|
191
|
+
impl.initiateWithData("inst_1", null, mockPromise)
|
|
192
|
+
verify { mockPromise.reject(KlarnaNetworkPaymentModuleImpl.NAME, errorDataRequired) }
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
@Test
|
|
196
|
+
fun `initiateWithData - rejects when amount is missing`() {
|
|
197
|
+
givenInitializeSucceeds()
|
|
198
|
+
val data = mockk<ReadableMap>(relaxed = true) {
|
|
199
|
+
every { hasKey("amount") } returns false
|
|
200
|
+
}
|
|
201
|
+
impl.initiateWithData("inst_1", data, mockPromise)
|
|
202
|
+
verify { mockPromise.reject(KlarnaNetworkPaymentModuleImpl.NAME, errorAmountRequired) }
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
@Test
|
|
206
|
+
fun `initiateWithData - rejects when currency is missing`() {
|
|
207
|
+
givenInitializeSucceeds()
|
|
208
|
+
val data = mockk<ReadableMap>(relaxed = true) {
|
|
209
|
+
every { hasKey("amount") } returns true
|
|
210
|
+
every { getString("currency") } returns null
|
|
211
|
+
}
|
|
212
|
+
impl.initiateWithData("inst_1", data, mockPromise)
|
|
213
|
+
verify { mockPromise.reject(KlarnaNetworkPaymentModuleImpl.NAME, errorCurrencyRequired) }
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
@Test
|
|
217
|
+
fun `initiateWithData - resolves on success`() {
|
|
218
|
+
givenInitiateWithDataSucceeds()
|
|
219
|
+
impl.initiateWithData("inst_1", mockValidPaymentData(), mockPromise)
|
|
220
|
+
verify { mockPromise.resolve(any()) }
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
@Test
|
|
224
|
+
fun `initiateWithData - rejects on native failure`() {
|
|
225
|
+
givenInitializeSucceeds()
|
|
226
|
+
val error = mockError()
|
|
227
|
+
every {
|
|
228
|
+
mockPayment.initiate(activity = any(), paymentRequestData = any(), callback = any())
|
|
229
|
+
} answers {
|
|
230
|
+
thirdArg<(KlarnaResult<KlarnaPaymentRequest, KlarnaSDKError>) -> Unit>()
|
|
231
|
+
.invoke(KlarnaResult.Failure(error))
|
|
232
|
+
}
|
|
233
|
+
impl.initiateWithData("inst_1", mockValidPaymentData(), mockPromise)
|
|
234
|
+
verify { mockPromise.reject("error_name", "error_message") }
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// endregion
|
|
238
|
+
|
|
239
|
+
// region fetch
|
|
240
|
+
|
|
241
|
+
@Test
|
|
242
|
+
fun `fetch - rejects when instance not found`() {
|
|
243
|
+
impl.fetch("unknown_id", "pr_1", mockPromise)
|
|
244
|
+
verify { mockPromise.reject(KlarnaNetworkPaymentModuleImpl.NAME, errorInstanceNotFound) }
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
@Test
|
|
248
|
+
fun `fetch - resolves on success`() {
|
|
249
|
+
givenFetchSucceeds()
|
|
250
|
+
impl.fetch("inst_1", "pr_1", mockPromise)
|
|
251
|
+
verify { mockPromise.resolve(any()) }
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
@Test
|
|
255
|
+
fun `fetch - rejects on native failure`() {
|
|
256
|
+
givenInitializeSucceeds()
|
|
257
|
+
val error = mockError()
|
|
258
|
+
every {
|
|
259
|
+
mockPayment.fetch(paymentRequestId = any(), callback = any())
|
|
260
|
+
} answers {
|
|
261
|
+
secondArg<(KlarnaResult<KlarnaPaymentRequest, KlarnaSDKError>) -> Unit>()
|
|
262
|
+
.invoke(KlarnaResult.Failure(error))
|
|
263
|
+
}
|
|
264
|
+
impl.fetch("inst_1", "pr_1", mockPromise)
|
|
265
|
+
verify { mockPromise.reject("error_name", "error_message") }
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
// endregion
|
|
269
|
+
|
|
270
|
+
// region cancel
|
|
271
|
+
|
|
272
|
+
@Test
|
|
273
|
+
fun `cancel - rejects when instance not found`() {
|
|
274
|
+
impl.cancel("unknown_id", "pr_1", mockPromise)
|
|
275
|
+
verify { mockPromise.reject(KlarnaNetworkPaymentModuleImpl.NAME, errorInstanceNotFound) }
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
@Test
|
|
279
|
+
fun `cancel - resolves on success`() {
|
|
280
|
+
givenCancelSucceeds()
|
|
281
|
+
impl.cancel("inst_1", "pr_1", mockPromise)
|
|
282
|
+
verify { mockPromise.resolve(any()) }
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
@Test
|
|
286
|
+
fun `cancel - rejects on native failure`() {
|
|
287
|
+
givenInitializeSucceeds()
|
|
288
|
+
val error = mockError()
|
|
289
|
+
every {
|
|
290
|
+
mockPayment.cancel(paymentRequestId = any(), callback = any())
|
|
291
|
+
} answers {
|
|
292
|
+
secondArg<(KlarnaResult<KlarnaPaymentRequest, KlarnaSDKError>) -> Unit>()
|
|
293
|
+
.invoke(KlarnaResult.Failure(error))
|
|
294
|
+
}
|
|
295
|
+
impl.cancel("inst_1", "pr_1", mockPromise)
|
|
296
|
+
verify { mockPromise.reject("error_name", "error_message") }
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
// endregion
|
|
300
|
+
|
|
301
|
+
// region dispose
|
|
302
|
+
|
|
303
|
+
@Test
|
|
304
|
+
fun `dispose - removes stored presentation content and resolves`() {
|
|
305
|
+
KlarnaNetworkPaymentModuleImpl.storedPresentationContent["inst_1"] = mockk(relaxed = true)
|
|
306
|
+
impl.dispose("inst_1", mockPromise)
|
|
307
|
+
assert(!KlarnaNetworkPaymentModuleImpl.storedPresentationContent.containsKey("inst_1"))
|
|
308
|
+
verify { mockPromise.resolve(null) }
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
@Test
|
|
312
|
+
fun `dispose - resolves even when no stored content`() {
|
|
313
|
+
impl.dispose("inst_1", mockPromise)
|
|
314
|
+
verify { mockPromise.resolve(null) }
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
// endregion
|
|
318
|
+
|
|
319
|
+
// region presentationFetch
|
|
320
|
+
|
|
321
|
+
@Test
|
|
322
|
+
fun `presentationFetch - rejects when instance not found`() {
|
|
323
|
+
impl.presentationFetch("unknown_id", mockk(relaxed = true), mockPromise)
|
|
324
|
+
verify { mockPromise.reject(KlarnaNetworkPaymentModuleImpl.NAME, errorInstanceNotFound) }
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
@Test
|
|
328
|
+
fun `presentationFetch - rejects when data is null`() {
|
|
329
|
+
givenInitializeSucceeds()
|
|
330
|
+
impl.presentationFetch("inst_1", null, mockPromise)
|
|
331
|
+
verify { mockPromise.reject(KlarnaNetworkPaymentModuleImpl.NAME, "data is required") }
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
// endregion
|
|
335
|
+
|
|
336
|
+
// region presentationHandleLink
|
|
337
|
+
|
|
338
|
+
@Test
|
|
339
|
+
fun `presentationHandleLink - rejects when instance not found`() {
|
|
340
|
+
impl.presentationHandleLink("unknown_id", "https://example.com", mockPromise)
|
|
341
|
+
verify { mockPromise.reject(KlarnaNetworkPaymentModuleImpl.NAME, errorInstanceNotFound) }
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
@Test
|
|
345
|
+
fun `presentationHandleLink - rejects when no presentation content stored`() {
|
|
346
|
+
givenInitializeSucceeds()
|
|
347
|
+
impl.presentationHandleLink("inst_1", "https://example.com", mockPromise)
|
|
348
|
+
verify { mockPromise.reject(KlarnaNetworkPaymentModuleImpl.NAME, "No presentation content found. Call presentationFetch first.") }
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
@Test
|
|
352
|
+
fun `presentationHandleLink - rejects when activity not found`() {
|
|
353
|
+
givenInitializeSucceeds()
|
|
354
|
+
KlarnaNetworkPaymentModuleImpl.storedPresentationContent["inst_1"] = mockk(relaxed = true)
|
|
355
|
+
every { mockContext.currentActivity } returns null
|
|
356
|
+
impl.presentationHandleLink("inst_1", "https://example.com", mockPromise)
|
|
357
|
+
verify { mockPromise.reject(KlarnaNetworkPaymentModuleImpl.NAME, errorActivityNotFound) }
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// endregion
|
|
361
|
+
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
package com.klarna.mobile.sdk.reactnative.klarnanetwork.payment
|
|
2
|
+
|
|
3
|
+
import com.klarna.mobile.sdk.api.KlarnaTheme
|
|
4
|
+
import com.klarna.mobile.sdk.api.button.KlarnaButtonShape
|
|
5
|
+
import com.klarna.mobile.sdk.api.button.KlarnaButtonStyle
|
|
6
|
+
import com.klarna.mobile.sdk.klarna.network.core.api.button.KlarnaButtonState
|
|
7
|
+
import com.klarna.mobile.sdk.klarna.network.payment.button.api.KlarnaPaymentButtonIntent
|
|
8
|
+
import org.junit.Before
|
|
9
|
+
import org.junit.Test
|
|
10
|
+
import kotlin.test.assertEquals
|
|
11
|
+
|
|
12
|
+
class KlarnaPaymentButtonViewManagerTest {
|
|
13
|
+
|
|
14
|
+
private lateinit var manager: KlarnaPaymentButtonViewManager
|
|
15
|
+
|
|
16
|
+
@Before
|
|
17
|
+
fun setUp() {
|
|
18
|
+
manager = KlarnaPaymentButtonViewManager()
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// region parseState
|
|
22
|
+
|
|
23
|
+
@Test
|
|
24
|
+
fun `parseState - returns DEFAULT for null`() {
|
|
25
|
+
assertEquals(KlarnaButtonState.DEFAULT, manager.parseState(null))
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@Test
|
|
29
|
+
fun `parseState - returns DISABLED for disabled`() {
|
|
30
|
+
assertEquals(KlarnaButtonState.DISABLED, manager.parseState("disabled"))
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@Test
|
|
34
|
+
fun `parseState - returns LOADING for loading`() {
|
|
35
|
+
assertEquals(KlarnaButtonState.LOADING, manager.parseState("loading"))
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@Test
|
|
39
|
+
fun `parseState - returns DEFAULT for unknown value`() {
|
|
40
|
+
assertEquals(KlarnaButtonState.DEFAULT, manager.parseState("unknown"))
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// endregion
|
|
44
|
+
|
|
45
|
+
// region parseIntent
|
|
46
|
+
|
|
47
|
+
@Test
|
|
48
|
+
fun `parseIntent - returns PAY for null`() {
|
|
49
|
+
assertEquals(KlarnaPaymentButtonIntent.PAY, manager.parseIntent(null))
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@Test
|
|
53
|
+
fun `parseIntent - returns PAY for pay`() {
|
|
54
|
+
assertEquals(KlarnaPaymentButtonIntent.PAY, manager.parseIntent("pay"))
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@Test
|
|
58
|
+
fun `parseIntent - returns SUBSCRIBE for subscribe`() {
|
|
59
|
+
assertEquals(KlarnaPaymentButtonIntent.SUBSCRIBE, manager.parseIntent("subscribe"))
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@Test
|
|
63
|
+
fun `parseIntent - returns ADD_TO_WALLET for addToWallet`() {
|
|
64
|
+
assertEquals(KlarnaPaymentButtonIntent.ADD_TO_WALLET, manager.parseIntent("addToWallet"))
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@Test
|
|
68
|
+
fun `parseIntent - returns PAY for unknown value`() {
|
|
69
|
+
assertEquals(KlarnaPaymentButtonIntent.PAY, manager.parseIntent("unknown"))
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// endregion
|
|
73
|
+
|
|
74
|
+
// region parseShape
|
|
75
|
+
|
|
76
|
+
@Test
|
|
77
|
+
fun `parseShape - returns ROUNDED_RECT for null`() {
|
|
78
|
+
assertEquals(KlarnaButtonShape.ROUNDED_RECT, manager.parseShape(null))
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
@Test
|
|
82
|
+
fun `parseShape - returns ROUNDED_RECT for roundedRect`() {
|
|
83
|
+
assertEquals(KlarnaButtonShape.ROUNDED_RECT, manager.parseShape("roundedRect"))
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@Test
|
|
87
|
+
fun `parseShape - returns PILL for pill`() {
|
|
88
|
+
assertEquals(KlarnaButtonShape.PILL, manager.parseShape("pill"))
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@Test
|
|
92
|
+
fun `parseShape - returns RECTANGLE for rectangle`() {
|
|
93
|
+
assertEquals(KlarnaButtonShape.RECTANGLE, manager.parseShape("rectangle"))
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@Test
|
|
97
|
+
fun `parseShape - returns ROUNDED_RECT for unknown value`() {
|
|
98
|
+
assertEquals(KlarnaButtonShape.ROUNDED_RECT, manager.parseShape("unknown"))
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// endregion
|
|
102
|
+
|
|
103
|
+
// region parseStyle
|
|
104
|
+
|
|
105
|
+
@Test
|
|
106
|
+
fun `parseStyle - returns FILLED for null`() {
|
|
107
|
+
assertEquals(KlarnaButtonStyle.FILLED, manager.parseStyle(null))
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
@Test
|
|
111
|
+
fun `parseStyle - returns FILLED for filled`() {
|
|
112
|
+
assertEquals(KlarnaButtonStyle.FILLED, manager.parseStyle("filled"))
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
@Test
|
|
116
|
+
fun `parseStyle - returns OUTLINED for outlined`() {
|
|
117
|
+
assertEquals(KlarnaButtonStyle.OUTLINED, manager.parseStyle("outlined"))
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
@Test
|
|
121
|
+
fun `parseStyle - returns FILLED for unknown value`() {
|
|
122
|
+
assertEquals(KlarnaButtonStyle.FILLED, manager.parseStyle("unknown"))
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// endregion
|
|
126
|
+
|
|
127
|
+
// region parseTheme
|
|
128
|
+
|
|
129
|
+
@Test
|
|
130
|
+
fun `parseTheme - returns DARK for null`() {
|
|
131
|
+
assertEquals(KlarnaTheme.DARK, manager.parseTheme(null))
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
@Test
|
|
135
|
+
fun `parseTheme - returns LIGHT for light`() {
|
|
136
|
+
assertEquals(KlarnaTheme.LIGHT, manager.parseTheme("light"))
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
@Test
|
|
140
|
+
fun `parseTheme - returns DARK for dark`() {
|
|
141
|
+
assertEquals(KlarnaTheme.DARK, manager.parseTheme("dark"))
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
@Test
|
|
145
|
+
fun `parseTheme - returns AUTOMATIC for automatic`() {
|
|
146
|
+
assertEquals(KlarnaTheme.AUTOMATIC, manager.parseTheme("automatic"))
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
@Test
|
|
150
|
+
fun `parseTheme - returns DARK for unknown value`() {
|
|
151
|
+
assertEquals(KlarnaTheme.DARK, manager.parseTheme("unknown"))
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// endregion
|
|
155
|
+
}
|