fidel-react-native 1.6.4 → 2.0.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/CHANGELOG.md +10 -0
- package/README.md +54 -55
- package/android/build.gradle +11 -8
- package/android/src/main/java/com/fidelreactlibrary/FidelModule.java +52 -44
- package/android/src/main/java/com/fidelreactlibrary/FidelPackage.java +64 -49
- package/android/src/main/java/com/fidelreactlibrary/adapters/CardVerificationConfigurationProperties.java +22 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelCardSchemesAdapter.java +46 -29
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelCardVerificationChoiceAdapter.java +57 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelCountryAdapter.java +47 -19
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelProgramTypeAdapter.java +46 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelSetupAdapter.java +108 -6
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelSetupProperties.java +67 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelVerificationConfigurationAdapter.java +35 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/ImageFromReadableMapAdapter.java +5 -1
- package/android/src/main/java/com/fidelreactlibrary/adapters/ResultsAdapter.java +288 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/CardSchemesAdapter.java +6 -2
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/CardVerificationChoiceAdapter.java +11 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/CountryAdapter.java +14 -3
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/DataAdapter.java +5 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/ProgramTypeAdapter.java +11 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/VerificationConfigurationAdapter.java +9 -0
- package/android/src/main/java/com/fidelreactlibrary/events/BridgeLibraryEvent.java +17 -0
- package/android/src/main/java/com/fidelreactlibrary/events/BridgeLibraryEventEmitter.java +24 -0
- package/android/src/main/java/com/fidelreactlibrary/events/CardVerificationChoiceObserver.java +29 -0
- package/android/src/main/java/com/fidelreactlibrary/events/CardVerificationStartedObserver.java +31 -0
- package/android/src/main/java/com/fidelreactlibrary/events/ResultsObserver.java +72 -0
- package/android/src/test/java/com/fidelreactlibrary/FidelModuleTests.java +50 -31
- package/android/src/test/java/com/fidelreactlibrary/FidelPackageTests.java +0 -1
- package/android/src/test/java/com/fidelreactlibrary/{FidelCardSchemesAdapterTests.java → adapters/FidelCardSchemesAdapterTests.java} +51 -47
- package/android/src/test/java/com/fidelreactlibrary/adapters/FidelCardVerificationChoiceAdapterTest.java +70 -0
- package/android/src/test/java/com/fidelreactlibrary/adapters/FidelCountryAdapterTests.java +157 -0
- package/android/src/test/java/com/fidelreactlibrary/adapters/FidelProgramTypeAdapterTests.java +54 -0
- package/android/src/test/java/com/fidelreactlibrary/adapters/FidelSetupAdapterTests.java +900 -0
- package/android/src/test/java/com/fidelreactlibrary/adapters/FidelVerificationConfigurationAdapterTest.java +51 -0
- package/android/src/test/java/com/fidelreactlibrary/adapters/ResultsAdapterTests.java +74 -0
- package/android/src/test/java/com/fidelreactlibrary/{ErrorEventEmitterTests.java → events/BridgeLibraryEventEmitterTests.java} +18 -7
- package/android/src/test/java/com/fidelreactlibrary/events/BridgeLibraryEventTests.java +17 -0
- package/android/src/test/java/com/fidelreactlibrary/events/CardVerificationStartedObserverTests.java +49 -0
- package/android/src/test/java/com/fidelreactlibrary/events/ResultsObserverTests.java +38 -0
- package/android/src/test/java/com/fidelreactlibrary/fakes/CardSchemeAdapterStub.java +17 -6
- package/android/src/test/java/com/fidelreactlibrary/fakes/ConstantsProviderStub.java +2 -2
- package/android/src/test/java/com/fidelreactlibrary/fakes/CountryAdapterStub.java +25 -10
- package/android/src/test/java/com/fidelreactlibrary/fakes/{DataConverterStub.java → DataAdapterStub.java} +3 -3
- package/android/src/test/java/com/fidelreactlibrary/fakes/ProgramTypeAdapterStub.java +31 -0
- package/android/src/test/java/com/fidelreactlibrary/fakes/ReactContextMock.java +1 -1
- package/android/src/test/java/com/fidelreactlibrary/fakes/ReadableArrayStub.java +82 -0
- package/android/src/test/java/com/fidelreactlibrary/fakes/ReadableMapStub.java +175 -40
- package/android/src/test/java/com/fidelreactlibrary/fakes/VerificationConfigurationAdapterStub.java +13 -0
- package/fidel-react-native.podspec +1 -1
- package/index.js +71 -19
- package/ios/Adapters/CardSchemesAdapter.swift +13 -0
- package/ios/Adapters/ConsentDetailsAdapter.swift +19 -0
- package/ios/Adapters/EnrollmentResultAdapter.swift +28 -0
- package/ios/Adapters/ErrorResultAdapter.swift +71 -0
- package/ios/{FLRNImageAdapter.h → Adapters/FLRNImageFromRNAdapter.h} +2 -3
- package/ios/Adapters/FidelSetupAdapter.swift +89 -0
- package/ios/Adapters/FidelVerificationConfigurationAdapter.swift +19 -0
- package/ios/Adapters/VerificationResultAdapter.swift +17 -0
- package/ios/CardVerificationConfigurationProperties.swift +14 -0
- package/ios/Constants/CardSchemeConstants.swift +38 -0
- package/ios/Constants/CardVerificationChoiceConstants.swift +24 -0
- package/ios/Constants/CountryConstants.swift +47 -0
- package/ios/Constants/EnrollmentErrorTypeConstants.swift +25 -0
- package/ios/Constants/ErrorTypeConstants.swift +37 -0
- package/ios/Constants/ExportedConstantsProvider.swift +42 -0
- package/ios/Constants/ProgramTypeConstants.swift +30 -0
- package/ios/Constants/ResultTypeConstants.swift +35 -0
- package/ios/Constants/VerificationErrorTypeConstants.swift +29 -0
- package/ios/Events/BridgeLibraryEvent.swift +14 -0
- package/ios/Events/CardVerificationChoiceSelectedObserver.swift +23 -0
- package/ios/Events/CardVerificationStartedObserver.swift +21 -0
- package/ios/Events/EventObserver.swift +13 -0
- package/ios/Events/JSResultProperties.swift +15 -0
- package/ios/Events/JSResultTypes.swift +14 -0
- package/ios/Events/ResultsObserver.swift +37 -0
- package/ios/FidelSetupProperties.swift +33 -0
- package/ios/NativeFidelBridge.m +11 -0
- package/ios/NativeFidelBridge.swift +93 -0
- package/package.json +1 -4
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelOptionsAdapter.java +0 -121
- package/android/src/main/java/com/fidelreactlibrary/adapters/WritableMapDataConverter.java +0 -94
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/DataConverter.java +0 -5
- package/android/src/main/java/com/fidelreactlibrary/events/CallbackActivityEventListener.java +0 -64
- package/android/src/main/java/com/fidelreactlibrary/events/CallbackInput.java +0 -7
- package/android/src/main/java/com/fidelreactlibrary/events/ErrorEventEmitter.java +0 -22
- package/android/src/test/java/com/fidelreactlibrary/CallbackActivityEventListenerTests.java +0 -133
- package/android/src/test/java/com/fidelreactlibrary/FidelCountryAdapterTests.java +0 -74
- package/android/src/test/java/com/fidelreactlibrary/FidelOptionsAdapterTests.java +0 -414
- package/android/src/test/java/com/fidelreactlibrary/FidelSetupAdapterTests.java +0 -65
- package/android/src/test/java/com/fidelreactlibrary/WritableMapDataConverterTests.java +0 -186
- package/android/src/test/java/com/fidelreactlibrary/fakes/CallbackInputSpy.java +0 -12
- package/android/src/test/java/com/fidelreactlibrary/fakes/CallbackSpy.java +0 -18
- package/android/src/test/java/com/fidelreactlibrary/fakes/IntentMock.java +0 -20
- package/ios/FLRNCardSchemesAdapter.h +0 -16
- package/ios/FLRNCardSchemesFromJSAdapter.h +0 -14
- package/ios/FLRNCardSchemesFromJSAdapter.m +0 -39
- package/ios/FLRNConstantsProvider.h +0 -15
- package/ios/FLRNImageFromRNAdapter.h +0 -14
- package/ios/FLRNObjectToDictionaryAdapter.h +0 -15
- package/ios/FLRNOptionsAdapter.h +0 -24
- package/ios/FLRNOptionsAdapter.m +0 -133
- package/ios/FLRNRuntimeObjectToDictionaryAdapter.h +0 -14
- package/ios/FLRNRuntimeObjectToDictionaryAdapter.m +0 -36
- package/ios/FLRNSDKOptions.h +0 -24
- package/ios/FLRNSDKSetupOptions.h +0 -14
- package/ios/FLRNSetupAdapter.h +0 -17
- package/ios/FLRNSetupAdapter.m +0 -50
- package/ios/Fidel.h +0 -20
- package/ios/Fidel.m +0 -79
- package/ios/RCTConvert+CardScheme.h +0 -33
- package/ios/RCTConvert+Options.h +0 -52
- package/ios/RCTConvert+Options.m +0 -21
- /package/ios/{FLRNImageFromRNAdapter.m → Adapters/FLRNImageFromRNAdapter.m} +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
package com.fidelreactlibrary.adapters;
|
|
2
|
+
|
|
3
|
+
import com.fidelreactlibrary.fakes.ReadableMapStub;
|
|
4
|
+
import com.fidelapi.entities.CardVerificationConfiguration;
|
|
5
|
+
import static org.junit.Assert.*;
|
|
6
|
+
|
|
7
|
+
import org.junit.Test;
|
|
8
|
+
|
|
9
|
+
public class FidelVerificationConfigurationAdapterTest {
|
|
10
|
+
|
|
11
|
+
private FidelVerificationConfigurationAdapter sut = new FidelVerificationConfigurationAdapter();
|
|
12
|
+
|
|
13
|
+
@Test
|
|
14
|
+
public void test_ShouldMapEmptyMapCorrectly() {
|
|
15
|
+
CardVerificationConfiguration expectedConfig = new CardVerificationConfiguration("", "", null);
|
|
16
|
+
|
|
17
|
+
CardVerificationConfiguration cardVerificationConfig = sut.adapt(ReadableMapStub.mapWithNoKey());
|
|
18
|
+
|
|
19
|
+
assertEquals(expectedConfig, cardVerificationConfig);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@Test
|
|
23
|
+
public void test_ShouldMapNonEmptyValidMapCorrectly() {
|
|
24
|
+
CardVerificationConfiguration expectedConfig = new CardVerificationConfiguration("123", "456", "4567");
|
|
25
|
+
|
|
26
|
+
CardVerificationConfiguration cardVerificationConfig = sut.adapt(ReadableMapStub.cardConfigWithAllValidConfigKeys());
|
|
27
|
+
|
|
28
|
+
assertEquals(expectedConfig, cardVerificationConfig);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@Test
|
|
32
|
+
public void test_ShouldMapNullIdCorrectly() {
|
|
33
|
+
CardVerificationConfiguration cardVerificationConfig = sut.adapt(ReadableMapStub.cardConfigWithAllInValidConfigKeys());
|
|
34
|
+
|
|
35
|
+
assertEquals("", cardVerificationConfig.id);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@Test
|
|
39
|
+
public void test_ShouldMapNullConsentIdCorrectly() {
|
|
40
|
+
CardVerificationConfiguration cardVerificationConfig = sut.adapt(ReadableMapStub.cardConfigWithAllInValidConfigKeys());
|
|
41
|
+
|
|
42
|
+
assertEquals("", cardVerificationConfig.consentId);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@Test
|
|
46
|
+
public void test_ShouldMapNullLast4DigitsCorrectly() {
|
|
47
|
+
CardVerificationConfiguration cardVerificationConfig = sut.adapt(ReadableMapStub.cardConfigWithAllInValidConfigKeys());
|
|
48
|
+
|
|
49
|
+
assertNull(cardVerificationConfig.last4Digits);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
package com.fidelreactlibrary.adapters;
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.JavaOnlyMap;
|
|
4
|
+
import com.fidelapi.entities.FidelError;
|
|
5
|
+
import com.fidelapi.entities.FidelErrorType;
|
|
6
|
+
import com.fidelreactlibrary.adapters.ResultsAdapter;
|
|
7
|
+
import com.fidelreactlibrary.fakes.CardSchemeAdapterStub;
|
|
8
|
+
import com.fidelreactlibrary.fakes.CountryAdapterStub;
|
|
9
|
+
|
|
10
|
+
import org.junit.After;
|
|
11
|
+
import org.junit.Before;
|
|
12
|
+
import org.junit.Test;
|
|
13
|
+
import org.junit.runner.RunWith;
|
|
14
|
+
import org.robolectric.RobolectricTestRunner;
|
|
15
|
+
|
|
16
|
+
import static org.junit.Assert.*;
|
|
17
|
+
|
|
18
|
+
import java.util.Map;
|
|
19
|
+
|
|
20
|
+
//Custom test runner is necessary for being able to use JSONObject
|
|
21
|
+
@RunWith(RobolectricTestRunner.class)
|
|
22
|
+
public class ResultsAdapterTests {
|
|
23
|
+
|
|
24
|
+
private final CountryAdapterStub countryAdapterStub = new CountryAdapterStub();
|
|
25
|
+
private final CardSchemeAdapterStub cardSchemeAdapterStub = new CardSchemeAdapterStub();
|
|
26
|
+
private ResultsAdapter sut;
|
|
27
|
+
|
|
28
|
+
@Before
|
|
29
|
+
public final void setUp() {
|
|
30
|
+
sut = new ResultsAdapter(JavaOnlyMap::new, countryAdapterStub, cardSchemeAdapterStub);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@After
|
|
34
|
+
public final void tearDown() {
|
|
35
|
+
sut = null;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@Test
|
|
39
|
+
public void test_WhenAskedToConvertNullObject_ReturnNull() {
|
|
40
|
+
assertNull(sut.getAdaptedObjectFor(null));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@Test
|
|
44
|
+
public void test_WhenAskedToConvertDeviceNotSecureObject_ShouldReturnCorrectErrorTypeForJS() {
|
|
45
|
+
FidelError fidelError = new FidelError(FidelErrorType.DeviceNotSecure.INSTANCE, "some message", 123);
|
|
46
|
+
assertEquals("deviceNotSecure", sut.getAdaptedObjectFor(fidelError).getString("type"));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@Test
|
|
50
|
+
public void test_WhenAskedToConvertDeviceNotSecureObject_ShouldReturnCorrectErrorMessageForJS() {
|
|
51
|
+
String testMessage = "some message";
|
|
52
|
+
FidelError fidelError = new FidelError(FidelErrorType.DeviceNotSecure.INSTANCE, testMessage, 123);
|
|
53
|
+
assertEquals(testMessage, sut.getAdaptedObjectFor(fidelError).getString("message"));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@Test
|
|
57
|
+
public void test_WhenAskedToConvertDeviceNotSecureObject_ShouldReturnCorrectDateForJS() {
|
|
58
|
+
long testDate = 123;
|
|
59
|
+
FidelError fidelError = new FidelError(FidelErrorType.DeviceNotSecure.INSTANCE, "some message", testDate);
|
|
60
|
+
assertEquals(testDate, sut.getAdaptedObjectFor(fidelError).getDouble("date"), 0.0001);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@Test
|
|
64
|
+
public void test_WhenAskedToGetAllConstantsToExport_ShouldIncludeDeviceNotSecureError() {
|
|
65
|
+
Map<String, Object> constants = sut.getConstants();
|
|
66
|
+
Object errorTypeConstants = constants.get("ErrorType");
|
|
67
|
+
if (!(errorTypeConstants instanceof Map)) {
|
|
68
|
+
fail("You should get a map of error types here");
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
Map<String, String> errorTypeConstantsMap = (Map<String, String>)errorTypeConstants;
|
|
72
|
+
assertEquals("deviceNotSecure", errorTypeConstantsMap.get("deviceNotSecure"));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
package com.fidelreactlibrary;
|
|
1
|
+
package com.fidelreactlibrary.events;
|
|
2
2
|
|
|
3
3
|
import android.content.Context;
|
|
4
4
|
|
|
5
5
|
import com.facebook.react.bridge.JavaOnlyMap;
|
|
6
6
|
import com.facebook.react.bridge.WritableMap;
|
|
7
7
|
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|
8
|
-
import com.fidelreactlibrary.events.ErrorEventEmitter;
|
|
9
8
|
import com.fidelreactlibrary.fakes.ReactContextMock;
|
|
10
9
|
|
|
11
10
|
import org.junit.After;
|
|
@@ -19,16 +18,15 @@ import androidx.test.core.app.ApplicationProvider;
|
|
|
19
18
|
import static org.junit.Assert.assertEquals;
|
|
20
19
|
|
|
21
20
|
@RunWith(RobolectricTestRunner.class)
|
|
22
|
-
public class
|
|
21
|
+
public class BridgeLibraryEventEmitterTests {
|
|
23
22
|
|
|
24
|
-
private
|
|
23
|
+
private BridgeLibraryEventEmitter sut;
|
|
25
24
|
private ReactContextMock reactContext;
|
|
26
25
|
|
|
27
26
|
@Before
|
|
28
27
|
public final void setUp() {
|
|
29
28
|
Context context = ApplicationProvider.getApplicationContext();
|
|
30
29
|
reactContext = new ReactContextMock(context);
|
|
31
|
-
sut = new ErrorEventEmitter(reactContext);
|
|
32
30
|
}
|
|
33
31
|
|
|
34
32
|
@After
|
|
@@ -38,6 +36,7 @@ public class ErrorEventEmitterTests {
|
|
|
38
36
|
|
|
39
37
|
@Test
|
|
40
38
|
public void test_WhenReceivingWritableData_AskForJSModule() {
|
|
39
|
+
sut = new BridgeLibraryEventEmitter(reactContext, BridgeLibraryEvent.RESULT_AVAILABLE);
|
|
41
40
|
WritableMap map = new JavaOnlyMap();
|
|
42
41
|
map.putString("testKey", "testValue");
|
|
43
42
|
sut.process(map);
|
|
@@ -45,11 +44,23 @@ public class ErrorEventEmitterTests {
|
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
@Test
|
|
48
|
-
public void
|
|
47
|
+
public void test_WhenReceivingWritableData_SendCorrectResultAvailableEventUsingTheObtainedJSModule() {
|
|
48
|
+
sut = new BridgeLibraryEventEmitter(reactContext, BridgeLibraryEvent.RESULT_AVAILABLE);
|
|
49
49
|
WritableMap map = new JavaOnlyMap();
|
|
50
50
|
map.putString("testKey", "testValue");
|
|
51
51
|
sut.process(map);
|
|
52
|
-
assertEquals(reactContext.receivedErrorName,
|
|
52
|
+
assertEquals(reactContext.receivedErrorName, BridgeLibraryEvent.RESULT_AVAILABLE.getEventName());
|
|
53
|
+
assertEquals(reactContext.receivedErrorData, map);
|
|
54
|
+
assertEquals(reactContext.eventEmitterInvokedMethodName, "emit");
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@Test
|
|
58
|
+
public void test_WhenReceivingWritableData_SendCorrectCardVerificationStartedEventUsingTheObtainedJSModule() {
|
|
59
|
+
sut = new BridgeLibraryEventEmitter(reactContext, BridgeLibraryEvent.CARD_VERIFICATION_STARTED);
|
|
60
|
+
WritableMap map = new JavaOnlyMap();
|
|
61
|
+
map.putString("testKey", "testValue");
|
|
62
|
+
sut.process(map);
|
|
63
|
+
assertEquals(reactContext.receivedErrorName, BridgeLibraryEvent.CARD_VERIFICATION_STARTED.getEventName());
|
|
53
64
|
assertEquals(reactContext.receivedErrorData, map);
|
|
54
65
|
assertEquals(reactContext.eventEmitterInvokedMethodName, "emit");
|
|
55
66
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
package com.fidelreactlibrary.events;
|
|
2
|
+
|
|
3
|
+
import static org.junit.Assert.assertEquals;
|
|
4
|
+
|
|
5
|
+
import org.junit.Test;
|
|
6
|
+
|
|
7
|
+
public class BridgeLibraryEventTests {
|
|
8
|
+
@Test
|
|
9
|
+
public void test_ResultAvailableEventType_ShouldHaveCorrectEventName() {
|
|
10
|
+
assertEquals("ResultAvailable", BridgeLibraryEvent.RESULT_AVAILABLE.getEventName());
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@Test
|
|
14
|
+
public void test_CardVerificationStartedEventType_ShouldHaveCorrectEventName() {
|
|
15
|
+
assertEquals("CardVerificationStarted", BridgeLibraryEvent.CARD_VERIFICATION_STARTED.getEventName());
|
|
16
|
+
}
|
|
17
|
+
}
|
package/android/src/test/java/com/fidelreactlibrary/events/CardVerificationStartedObserverTests.java
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
package com.fidelreactlibrary.events;
|
|
2
|
+
|
|
3
|
+
import static org.junit.Assert.assertEquals;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.bridge.JavaOnlyMap;
|
|
6
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
7
|
+
import com.fidelapi.entities.ConsentDetails;
|
|
8
|
+
import com.fidelreactlibrary.fakes.DataProcessorSpy;
|
|
9
|
+
|
|
10
|
+
import org.junit.Before;
|
|
11
|
+
import org.junit.Test;
|
|
12
|
+
|
|
13
|
+
public class CardVerificationStartedObserverTests {
|
|
14
|
+
private DataProcessorSpy<ReadableMap> adaptedConsentDetailsProcessorSpy;
|
|
15
|
+
private CardVerificationStartedObserver observer;
|
|
16
|
+
|
|
17
|
+
@Before
|
|
18
|
+
public void setup() {
|
|
19
|
+
adaptedConsentDetailsProcessorSpy = new DataProcessorSpy<>();
|
|
20
|
+
observer = new CardVerificationStartedObserver(
|
|
21
|
+
adaptedConsentDetailsProcessorSpy,
|
|
22
|
+
JavaOnlyMap::new
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@Test
|
|
27
|
+
public void test_WhenCardVerificationStarted_ShouldForwardMapWithCorrectCardID() {
|
|
28
|
+
String testCardId = "some card ID";
|
|
29
|
+
ConsentDetails consentDetailsStub = new ConsentDetails(testCardId, "", "");
|
|
30
|
+
observer.onCardVerificationStarted(consentDetailsStub);
|
|
31
|
+
assertEquals(testCardId, adaptedConsentDetailsProcessorSpy.dataToProcess.getString("cardId"));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@Test
|
|
35
|
+
public void test_WhenCardVerificationStarted_ShouldForwardMapWithCorrectConsentID() {
|
|
36
|
+
String testConsentId = "some consent ID";
|
|
37
|
+
ConsentDetails consentDetailsStub = new ConsentDetails("", testConsentId, "");
|
|
38
|
+
observer.onCardVerificationStarted(consentDetailsStub);
|
|
39
|
+
assertEquals(testConsentId, adaptedConsentDetailsProcessorSpy.dataToProcess.getString("consentId"));
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@Test
|
|
43
|
+
public void test_WhenCardVerificationStarted_ShouldForwardMapWithCorrectProgramID() {
|
|
44
|
+
String testProgramId = "some program ID";
|
|
45
|
+
ConsentDetails consentDetailsStub = new ConsentDetails("", "", testProgramId);
|
|
46
|
+
observer.onCardVerificationStarted(consentDetailsStub);
|
|
47
|
+
assertEquals(testProgramId, adaptedConsentDetailsProcessorSpy.dataToProcess.getString("programId"));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
package com.fidelreactlibrary.events;
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.JavaOnlyMap;
|
|
4
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
5
|
+
import com.facebook.react.bridge.WritableMap;
|
|
6
|
+
import com.fidelapi.entities.CardScheme;
|
|
7
|
+
import com.fidelapi.entities.Country;
|
|
8
|
+
import com.fidelapi.entities.EnrollmentResult;
|
|
9
|
+
import com.fidelreactlibrary.events.ResultsObserver;
|
|
10
|
+
import com.fidelreactlibrary.fakes.DataAdapterStub;
|
|
11
|
+
import com.fidelreactlibrary.fakes.DataProcessorSpy;
|
|
12
|
+
|
|
13
|
+
import org.junit.After;
|
|
14
|
+
import org.junit.Before;
|
|
15
|
+
|
|
16
|
+
public class ResultsObserverTests {
|
|
17
|
+
|
|
18
|
+
private DataAdapterStub<Object, WritableMap> resultAdapterStub = new DataAdapterStub<>();
|
|
19
|
+
private DataProcessorSpy<ReadableMap> resultHandlerSpy = new DataProcessorSpy<>();
|
|
20
|
+
private ResultsObserver sut = new ResultsObserver(resultAdapterStub, resultHandlerSpy, JavaOnlyMap::new);
|
|
21
|
+
|
|
22
|
+
private static final EnrollmentResult testLinkResult = new EnrollmentResult(
|
|
23
|
+
"TEST CARD ID", "", "", -1, CardScheme.MASTERCARD,
|
|
24
|
+
false, 2021,12, Country.CANADA, "444400", "4001", null
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
@Before
|
|
28
|
+
public final void setUp() {
|
|
29
|
+
resultAdapterStub.convertedDataToReturn = new JavaOnlyMap();
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@After
|
|
33
|
+
public final void tearDown() {
|
|
34
|
+
sut = null;
|
|
35
|
+
resultAdapterStub = null;
|
|
36
|
+
resultHandlerSpy = null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -1,28 +1,39 @@
|
|
|
1
1
|
package com.fidelreactlibrary.fakes;
|
|
2
2
|
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
import androidx.annotation.Nullable;
|
|
5
|
+
|
|
3
6
|
import com.facebook.react.bridge.ReadableArray;
|
|
4
|
-
import com.
|
|
7
|
+
import com.fidelapi.entities.CardScheme;
|
|
5
8
|
import com.fidelreactlibrary.adapters.abstraction.CardSchemesAdapter;
|
|
6
9
|
|
|
7
10
|
import java.util.Map;
|
|
8
11
|
import java.util.Set;
|
|
9
12
|
|
|
10
|
-
import javax.annotation.Nonnull;
|
|
11
|
-
|
|
12
13
|
public final class CardSchemeAdapterStub implements CardSchemesAdapter {
|
|
13
14
|
|
|
14
15
|
public ReadableArray cardSchemesReceived;
|
|
15
|
-
public Set<
|
|
16
|
+
public Set<CardScheme> fakeAdaptedCardSchemesToReturn;
|
|
17
|
+
public boolean askedToAdaptCardSchemes = false;
|
|
18
|
+
public String jsValueToReturn;
|
|
16
19
|
|
|
20
|
+
@NonNull
|
|
17
21
|
@Override
|
|
18
|
-
public Set<
|
|
22
|
+
public Set<CardScheme> cardSchemesWithReadableArray(@Nullable ReadableArray cardSchemes) {
|
|
23
|
+
askedToAdaptCardSchemes = true;
|
|
19
24
|
cardSchemesReceived = cardSchemes;
|
|
20
25
|
return fakeAdaptedCardSchemesToReturn;
|
|
21
26
|
}
|
|
22
27
|
|
|
23
|
-
@
|
|
28
|
+
@NonNull
|
|
24
29
|
@Override
|
|
25
30
|
public Map<String, Object> getConstants() {
|
|
26
31
|
return new ConstantsProviderStub("testKeyCardSchemeAdapter", 234).getConstants();
|
|
27
32
|
}
|
|
33
|
+
|
|
34
|
+
@NonNull
|
|
35
|
+
@Override
|
|
36
|
+
public String jsValue(@NonNull CardScheme cardScheme) {
|
|
37
|
+
return jsValueToReturn;
|
|
38
|
+
}
|
|
28
39
|
}
|
|
@@ -9,8 +9,8 @@ import javax.annotation.Nonnull;
|
|
|
9
9
|
|
|
10
10
|
public final class ConstantsProviderStub implements ConstantsProvider {
|
|
11
11
|
|
|
12
|
-
private String key;
|
|
13
|
-
private Integer value;
|
|
12
|
+
private final String key;
|
|
13
|
+
private final Integer value;
|
|
14
14
|
|
|
15
15
|
public ConstantsProviderStub(String key, Integer value) {
|
|
16
16
|
this.key = key;
|
|
@@ -1,32 +1,47 @@
|
|
|
1
1
|
package com.fidelreactlibrary.fakes;
|
|
2
2
|
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
import androidx.annotation.Nullable;
|
|
5
|
+
|
|
3
6
|
import com.facebook.react.bridge.ReadableArray;
|
|
4
|
-
import com.
|
|
5
|
-
import com.fidel.sdk.Fidel.Country;
|
|
7
|
+
import com.fidelapi.entities.Country;
|
|
6
8
|
import com.fidelreactlibrary.adapters.abstraction.CountryAdapter;
|
|
7
9
|
|
|
8
10
|
import java.util.Map;
|
|
9
|
-
|
|
10
|
-
import javax.annotation.Nonnull;
|
|
11
|
+
import java.util.Set;
|
|
11
12
|
|
|
12
13
|
public final class CountryAdapterStub implements CountryAdapter {
|
|
13
14
|
|
|
14
|
-
public Country
|
|
15
|
+
public Set<Country> countriesToReturn;
|
|
16
|
+
public boolean askedToParseAllowedCountries = false;
|
|
17
|
+
public String jsValueToReturn;
|
|
18
|
+
public Country countryForJSValueToReturn;
|
|
19
|
+
public String countryJSValueReceived;
|
|
15
20
|
|
|
16
|
-
@
|
|
21
|
+
@NonNull
|
|
17
22
|
@Override
|
|
18
23
|
public Map<String, Object> getConstants() {
|
|
19
24
|
ConstantsProviderStub constantsProviderStub = new ConstantsProviderStub("testKey", 2);
|
|
20
25
|
return constantsProviderStub.getConstants();
|
|
21
26
|
}
|
|
22
27
|
|
|
28
|
+
@Nullable
|
|
29
|
+
@Override
|
|
30
|
+
public Country countryWithJSValue(String jsValue) {
|
|
31
|
+
countryJSValueReceived = jsValue;
|
|
32
|
+
return countryForJSValueToReturn;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@NonNull
|
|
23
36
|
@Override
|
|
24
|
-
public Country
|
|
25
|
-
|
|
37
|
+
public Set<Country> parseAllowedCountries(ReadableArray inputArray) {
|
|
38
|
+
askedToParseAllowedCountries = true;
|
|
39
|
+
return countriesToReturn;
|
|
26
40
|
}
|
|
27
41
|
|
|
42
|
+
@NonNull
|
|
28
43
|
@Override
|
|
29
|
-
public
|
|
30
|
-
return
|
|
44
|
+
public String jsCountryValue(@NonNull Country country) {
|
|
45
|
+
return jsValueToReturn;
|
|
31
46
|
}
|
|
32
47
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
package com.fidelreactlibrary.fakes;
|
|
2
2
|
|
|
3
|
-
import com.fidelreactlibrary.adapters.abstraction.
|
|
3
|
+
import com.fidelreactlibrary.adapters.abstraction.DataAdapter;
|
|
4
4
|
|
|
5
|
-
public final class
|
|
5
|
+
public final class DataAdapterStub<D, C> implements DataAdapter<D, C> {
|
|
6
6
|
|
|
7
7
|
public D dataReceived;
|
|
8
8
|
public C convertedDataToReturn;
|
|
9
9
|
|
|
10
10
|
@Override
|
|
11
|
-
public C
|
|
11
|
+
public C getAdaptedObjectFor(D data) {
|
|
12
12
|
dataReceived = data;
|
|
13
13
|
return convertedDataToReturn;
|
|
14
14
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
package com.fidelreactlibrary.fakes;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
import androidx.annotation.Nullable;
|
|
5
|
+
|
|
6
|
+
import com.fidelapi.entities.ProgramType;
|
|
7
|
+
import com.fidelreactlibrary.adapters.abstraction.ProgramTypeAdapter;
|
|
8
|
+
|
|
9
|
+
import java.util.HashMap;
|
|
10
|
+
import java.util.Map;
|
|
11
|
+
|
|
12
|
+
public class ProgramTypeAdapterStub implements ProgramTypeAdapter {
|
|
13
|
+
|
|
14
|
+
public ProgramType programTypeToReturn;
|
|
15
|
+
public String receivedProgramTypeString;
|
|
16
|
+
|
|
17
|
+
@NonNull
|
|
18
|
+
@Override
|
|
19
|
+
public ProgramType parseProgramType(@Nullable String programType) {
|
|
20
|
+
receivedProgramTypeString = programType;
|
|
21
|
+
return programTypeToReturn;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@NonNull
|
|
25
|
+
@Override
|
|
26
|
+
public Map<String, Object> getConstants() {
|
|
27
|
+
HashMap<String, Object> hashmapToReturn = new HashMap<>();
|
|
28
|
+
hashmapToReturn.put("some key", "some value");
|
|
29
|
+
return hashmapToReturn;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -37,7 +37,7 @@ public final class ReactContextMock extends ReactApplicationContext {
|
|
|
37
37
|
private class JSModuleSpyInvocationHandler implements InvocationHandler {
|
|
38
38
|
|
|
39
39
|
@Override
|
|
40
|
-
public Object invoke(Object o, Method method, Object[] objects)
|
|
40
|
+
public Object invoke(Object o, Method method, Object[] objects) {
|
|
41
41
|
receivedErrorName = (String) objects[0];
|
|
42
42
|
receivedErrorData = (WritableMap) objects[1];
|
|
43
43
|
eventEmitterInvokedMethodName = method.getName();
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
package com.fidelreactlibrary.fakes;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.bridge.Dynamic;
|
|
6
|
+
import com.facebook.react.bridge.ReadableArray;
|
|
7
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
8
|
+
import com.facebook.react.bridge.ReadableType;
|
|
9
|
+
|
|
10
|
+
import java.util.ArrayList;
|
|
11
|
+
|
|
12
|
+
public class ReadableArrayStub implements ReadableArray {
|
|
13
|
+
|
|
14
|
+
private final int size;
|
|
15
|
+
private final String[] values;
|
|
16
|
+
|
|
17
|
+
public ReadableArrayStub(int size, String[] values) {
|
|
18
|
+
this.size = size;
|
|
19
|
+
this.values = values;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@Override
|
|
23
|
+
public int size() {
|
|
24
|
+
return this.size;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@Override
|
|
28
|
+
public boolean isNull(int index) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@Override
|
|
33
|
+
public boolean getBoolean(int index) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@Override
|
|
38
|
+
public double getDouble(int index) {
|
|
39
|
+
return 0;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@Override
|
|
43
|
+
public int getInt(int index) {
|
|
44
|
+
return -1;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@NonNull
|
|
48
|
+
@Override
|
|
49
|
+
public String getString(int index) {
|
|
50
|
+
return values[index];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@NonNull
|
|
54
|
+
@Override
|
|
55
|
+
public ReadableArray getArray(int index) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@NonNull
|
|
60
|
+
@Override
|
|
61
|
+
public ReadableMap getMap(int index) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@NonNull
|
|
66
|
+
@Override
|
|
67
|
+
public Dynamic getDynamic(int index) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@NonNull
|
|
72
|
+
@Override
|
|
73
|
+
public ReadableType getType(int index) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@NonNull
|
|
78
|
+
@Override
|
|
79
|
+
public ArrayList<Object> toArrayList() {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
}
|