fidel-react-native 1.6.3 → 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.
Files changed (113) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +54 -55
  3. package/android/build.gradle +11 -8
  4. package/android/src/main/java/com/fidelreactlibrary/FidelModule.java +52 -44
  5. package/android/src/main/java/com/fidelreactlibrary/FidelPackage.java +64 -49
  6. package/android/src/main/java/com/fidelreactlibrary/adapters/CardVerificationConfigurationProperties.java +22 -0
  7. package/android/src/main/java/com/fidelreactlibrary/adapters/FidelCardSchemesAdapter.java +46 -29
  8. package/android/src/main/java/com/fidelreactlibrary/adapters/FidelCardVerificationChoiceAdapter.java +57 -0
  9. package/android/src/main/java/com/fidelreactlibrary/adapters/FidelCountryAdapter.java +47 -19
  10. package/android/src/main/java/com/fidelreactlibrary/adapters/FidelProgramTypeAdapter.java +46 -0
  11. package/android/src/main/java/com/fidelreactlibrary/adapters/FidelSetupAdapter.java +108 -6
  12. package/android/src/main/java/com/fidelreactlibrary/adapters/FidelSetupProperties.java +67 -0
  13. package/android/src/main/java/com/fidelreactlibrary/adapters/FidelVerificationConfigurationAdapter.java +35 -0
  14. package/android/src/main/java/com/fidelreactlibrary/adapters/ImageFromReadableMapAdapter.java +5 -1
  15. package/android/src/main/java/com/fidelreactlibrary/adapters/ResultsAdapter.java +288 -0
  16. package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/CardSchemesAdapter.java +6 -2
  17. package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/CardVerificationChoiceAdapter.java +11 -0
  18. package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/CountryAdapter.java +14 -3
  19. package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/DataAdapter.java +5 -0
  20. package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/ProgramTypeAdapter.java +11 -0
  21. package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/VerificationConfigurationAdapter.java +9 -0
  22. package/android/src/main/java/com/fidelreactlibrary/events/BridgeLibraryEvent.java +17 -0
  23. package/android/src/main/java/com/fidelreactlibrary/events/BridgeLibraryEventEmitter.java +24 -0
  24. package/android/src/main/java/com/fidelreactlibrary/events/CardVerificationChoiceObserver.java +29 -0
  25. package/android/src/main/java/com/fidelreactlibrary/events/CardVerificationStartedObserver.java +31 -0
  26. package/android/src/main/java/com/fidelreactlibrary/events/ResultsObserver.java +72 -0
  27. package/android/src/test/java/com/fidelreactlibrary/FidelModuleTests.java +50 -31
  28. package/android/src/test/java/com/fidelreactlibrary/FidelPackageTests.java +0 -1
  29. package/android/src/test/java/com/fidelreactlibrary/{FidelCardSchemesAdapterTests.java → adapters/FidelCardSchemesAdapterTests.java} +51 -47
  30. package/android/src/test/java/com/fidelreactlibrary/adapters/FidelCardVerificationChoiceAdapterTest.java +70 -0
  31. package/android/src/test/java/com/fidelreactlibrary/adapters/FidelCountryAdapterTests.java +157 -0
  32. package/android/src/test/java/com/fidelreactlibrary/adapters/FidelProgramTypeAdapterTests.java +54 -0
  33. package/android/src/test/java/com/fidelreactlibrary/adapters/FidelSetupAdapterTests.java +900 -0
  34. package/android/src/test/java/com/fidelreactlibrary/adapters/FidelVerificationConfigurationAdapterTest.java +51 -0
  35. package/android/src/test/java/com/fidelreactlibrary/adapters/ResultsAdapterTests.java +74 -0
  36. package/android/src/test/java/com/fidelreactlibrary/{ErrorEventEmitterTests.java → events/BridgeLibraryEventEmitterTests.java} +18 -7
  37. package/android/src/test/java/com/fidelreactlibrary/events/BridgeLibraryEventTests.java +17 -0
  38. package/android/src/test/java/com/fidelreactlibrary/events/CardVerificationStartedObserverTests.java +49 -0
  39. package/android/src/test/java/com/fidelreactlibrary/events/ResultsObserverTests.java +38 -0
  40. package/android/src/test/java/com/fidelreactlibrary/fakes/CardSchemeAdapterStub.java +17 -6
  41. package/android/src/test/java/com/fidelreactlibrary/fakes/ConstantsProviderStub.java +2 -2
  42. package/android/src/test/java/com/fidelreactlibrary/fakes/CountryAdapterStub.java +25 -10
  43. package/android/src/test/java/com/fidelreactlibrary/fakes/{DataConverterStub.java → DataAdapterStub.java} +3 -3
  44. package/android/src/test/java/com/fidelreactlibrary/fakes/ProgramTypeAdapterStub.java +31 -0
  45. package/android/src/test/java/com/fidelreactlibrary/fakes/ReactContextMock.java +1 -1
  46. package/android/src/test/java/com/fidelreactlibrary/fakes/ReadableArrayStub.java +82 -0
  47. package/android/src/test/java/com/fidelreactlibrary/fakes/ReadableMapStub.java +175 -40
  48. package/android/src/test/java/com/fidelreactlibrary/fakes/VerificationConfigurationAdapterStub.java +13 -0
  49. package/fidel-react-native.podspec +1 -1
  50. package/index.js +71 -19
  51. package/ios/Adapters/CardSchemesAdapter.swift +13 -0
  52. package/ios/Adapters/ConsentDetailsAdapter.swift +19 -0
  53. package/ios/Adapters/EnrollmentResultAdapter.swift +28 -0
  54. package/ios/Adapters/ErrorResultAdapter.swift +71 -0
  55. package/ios/{FLRNImageAdapter.h → Adapters/FLRNImageFromRNAdapter.h} +2 -3
  56. package/ios/Adapters/FidelSetupAdapter.swift +89 -0
  57. package/ios/Adapters/FidelVerificationConfigurationAdapter.swift +19 -0
  58. package/ios/Adapters/VerificationResultAdapter.swift +17 -0
  59. package/ios/CardVerificationConfigurationProperties.swift +14 -0
  60. package/ios/Constants/CardSchemeConstants.swift +38 -0
  61. package/ios/Constants/CardVerificationChoiceConstants.swift +24 -0
  62. package/ios/Constants/CountryConstants.swift +47 -0
  63. package/ios/Constants/EnrollmentErrorTypeConstants.swift +25 -0
  64. package/ios/Constants/ErrorTypeConstants.swift +37 -0
  65. package/ios/Constants/ExportedConstantsProvider.swift +42 -0
  66. package/ios/Constants/ProgramTypeConstants.swift +30 -0
  67. package/ios/Constants/ResultTypeConstants.swift +35 -0
  68. package/ios/Constants/VerificationErrorTypeConstants.swift +29 -0
  69. package/ios/Events/BridgeLibraryEvent.swift +14 -0
  70. package/ios/Events/CardVerificationChoiceSelectedObserver.swift +23 -0
  71. package/ios/Events/CardVerificationStartedObserver.swift +21 -0
  72. package/ios/Events/EventObserver.swift +13 -0
  73. package/ios/Events/JSResultProperties.swift +15 -0
  74. package/ios/Events/JSResultTypes.swift +14 -0
  75. package/ios/Events/ResultsObserver.swift +37 -0
  76. package/ios/FidelSetupProperties.swift +33 -0
  77. package/ios/NativeFidelBridge.m +11 -0
  78. package/ios/NativeFidelBridge.swift +93 -0
  79. package/package.json +1 -4
  80. package/android/src/main/java/com/fidelreactlibrary/adapters/FidelOptionsAdapter.java +0 -121
  81. package/android/src/main/java/com/fidelreactlibrary/adapters/WritableMapDataConverter.java +0 -94
  82. package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/DataConverter.java +0 -5
  83. package/android/src/main/java/com/fidelreactlibrary/events/CallbackActivityEventListener.java +0 -64
  84. package/android/src/main/java/com/fidelreactlibrary/events/CallbackInput.java +0 -7
  85. package/android/src/main/java/com/fidelreactlibrary/events/ErrorEventEmitter.java +0 -22
  86. package/android/src/test/java/com/fidelreactlibrary/CallbackActivityEventListenerTests.java +0 -133
  87. package/android/src/test/java/com/fidelreactlibrary/FidelCountryAdapterTests.java +0 -74
  88. package/android/src/test/java/com/fidelreactlibrary/FidelOptionsAdapterTests.java +0 -414
  89. package/android/src/test/java/com/fidelreactlibrary/FidelSetupAdapterTests.java +0 -65
  90. package/android/src/test/java/com/fidelreactlibrary/WritableMapDataConverterTests.java +0 -186
  91. package/android/src/test/java/com/fidelreactlibrary/fakes/CallbackInputSpy.java +0 -12
  92. package/android/src/test/java/com/fidelreactlibrary/fakes/CallbackSpy.java +0 -18
  93. package/android/src/test/java/com/fidelreactlibrary/fakes/IntentMock.java +0 -20
  94. package/ios/FLRNCardSchemesAdapter.h +0 -16
  95. package/ios/FLRNCardSchemesFromJSAdapter.h +0 -14
  96. package/ios/FLRNCardSchemesFromJSAdapter.m +0 -39
  97. package/ios/FLRNConstantsProvider.h +0 -15
  98. package/ios/FLRNImageFromRNAdapter.h +0 -14
  99. package/ios/FLRNObjectToDictionaryAdapter.h +0 -15
  100. package/ios/FLRNOptionsAdapter.h +0 -24
  101. package/ios/FLRNOptionsAdapter.m +0 -133
  102. package/ios/FLRNRuntimeObjectToDictionaryAdapter.h +0 -14
  103. package/ios/FLRNRuntimeObjectToDictionaryAdapter.m +0 -36
  104. package/ios/FLRNSDKOptions.h +0 -24
  105. package/ios/FLRNSDKSetupOptions.h +0 -14
  106. package/ios/FLRNSetupAdapter.h +0 -17
  107. package/ios/FLRNSetupAdapter.m +0 -50
  108. package/ios/Fidel.h +0 -20
  109. package/ios/Fidel.m +0 -79
  110. package/ios/RCTConvert+CardScheme.h +0 -33
  111. package/ios/RCTConvert+Options.h +0 -52
  112. package/ios/RCTConvert+Options.m +0 -21
  113. /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 ErrorEventEmitterTests {
21
+ public class BridgeLibraryEventEmitterTests {
23
22
 
24
- private ErrorEventEmitter sut;
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 test_WhenReceivingWritableData_SendEventUsingTheObtainedJSModule() {
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, "CardLinkFailed");
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
+ }
@@ -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.fidel.sdk.Fidel;
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<Fidel.CardScheme> fakeAdaptedCardSchemesToReturn;
16
+ public Set<CardScheme> fakeAdaptedCardSchemesToReturn;
17
+ public boolean askedToAdaptCardSchemes = false;
18
+ public String jsValueToReturn;
16
19
 
20
+ @NonNull
17
21
  @Override
18
- public Set<Fidel.CardScheme> cardSchemesWithReadableArray(ReadableArray cardSchemes) {
22
+ public Set<CardScheme> cardSchemesWithReadableArray(@Nullable ReadableArray cardSchemes) {
23
+ askedToAdaptCardSchemes = true;
19
24
  cardSchemesReceived = cardSchemes;
20
25
  return fakeAdaptedCardSchemesToReturn;
21
26
  }
22
27
 
23
- @Nonnull
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.fidel.sdk.Fidel;
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[] countriesToReturn;
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
- @Nonnull
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 countryWithInteger(int integer) {
25
- return null;
37
+ public Set<Country> parseAllowedCountries(ReadableArray inputArray) {
38
+ askedToParseAllowedCountries = true;
39
+ return countriesToReturn;
26
40
  }
27
41
 
42
+ @NonNull
28
43
  @Override
29
- public Country[] parseAllowedCountries(ReadableArray inputArray) {
30
- return new Fidel.Country[]{Fidel.Country.UNITED_KINGDOM, Fidel.Country.JAPAN, Fidel.Country.CANADA};
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.DataConverter;
3
+ import com.fidelreactlibrary.adapters.abstraction.DataAdapter;
4
4
 
5
- public final class DataConverterStub<D, C> implements DataConverter<D, C> {
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 getConvertedDataFor(D data) {
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) throws Throwable {
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
+ }