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
@@ -1,414 +0,0 @@
1
- package com.fidelreactlibrary;
2
-
3
- import android.graphics.Bitmap;
4
-
5
- import com.facebook.react.bridge.JavaOnlyArray;
6
- import com.facebook.react.bridge.ReadableMap;
7
- import com.fidel.sdk.Fidel;
8
- import com.fidelreactlibrary.adapters.FidelOptionsAdapter;
9
- import com.fidelreactlibrary.fakes.CardSchemeAdapterStub;
10
- import com.fidelreactlibrary.fakes.CountryAdapterStub;
11
- import com.fidelreactlibrary.fakes.DataProcessorSpy;
12
- import com.fidelreactlibrary.fakes.ReadableMapStub;
13
-
14
- import org.junit.After;
15
- import org.junit.Test;
16
- import org.junit.runner.RunWith;
17
- import org.robolectric.RobolectricTestRunner;
18
-
19
- import java.util.Arrays;
20
- import java.util.EnumSet;
21
- import java.util.HashMap;
22
- import java.util.Map;
23
- import java.util.Set;
24
-
25
- import static com.fidelreactlibrary.helpers.AssertHelpers.assertMapContainsMap;
26
- import static com.fidelreactlibrary.helpers.AssertHelpers.assertMapEqualsWithJSONObject;
27
- import static org.hamcrest.core.IsCollectionContaining.hasItem;
28
- import static org.junit.Assert.*;
29
-
30
-
31
- //Custom test runner is necessary for being able to use JSONObject
32
- @RunWith(RobolectricTestRunner.class)
33
- public class FidelOptionsAdapterTests {
34
-
35
- private DataProcessorSpy<ReadableMap> imageAdapterSpy = new DataProcessorSpy<>();
36
- private ReadableMapStub map;
37
- private CountryAdapterStub countryAdapterStub = new CountryAdapterStub();
38
- private CardSchemeAdapterStub cardSchemesAdapterStub = new CardSchemeAdapterStub();
39
- private FidelOptionsAdapter sut = new FidelOptionsAdapter(imageAdapterSpy, countryAdapterStub, cardSchemesAdapterStub);
40
-
41
- private static final String TEST_COMPANY_NAME = "Test Company Name Inc.";
42
- private static final String TEST_PROGRAM_NAME = "Test Program Name";
43
- private static final String TEST_DELETE_INSTRUCTIONS = "Test Delete instructions.";
44
- private static final String TEST_PRIVACY_URL = "testprivacy.url";
45
- private static final String TEST_TERMS_CONDITIONS_URL = "termsconditions.url";
46
- private static final Fidel.Country[] TEST_COUNTRIES = new Fidel.Country[]{Fidel.Country.UNITED_KINGDOM, Fidel.Country.JAPAN, Fidel.Country.CANADA};
47
- private static final Integer TEST_COUNTRY_NUMBER = 12;
48
-
49
- @After
50
- public final void tearDown() {
51
- sut = null;
52
- Fidel.bannerImage = null;
53
- Fidel.autoScan = false;
54
- Fidel.companyName = null;
55
- Fidel.programName = null;
56
- Fidel.deleteInstructions = null;
57
- Fidel.privacyURL = null;
58
- Fidel.termsConditionsURL = null;
59
- Fidel.metaData = null;
60
- Fidel.allowedCountries = null;
61
- Fidel.supportedCardSchemes = EnumSet.allOf(Fidel.CardScheme.class);
62
- }
63
-
64
- //Verification values tests
65
- @Test
66
- public void test_ChecksAllKeys() {
67
- assertThat(FidelOptionsAdapter.OPTION_KEYS, hasItem(FidelOptionsAdapter.BANNER_IMAGE_KEY));
68
- assertThat(FidelOptionsAdapter.OPTION_KEYS, hasItem(FidelOptionsAdapter.AUTO_SCAN_KEY));
69
- assertThat(FidelOptionsAdapter.OPTION_KEYS, hasItem(FidelOptionsAdapter.COMPANY_NAME_KEY));
70
- assertThat(FidelOptionsAdapter.OPTION_KEYS, hasItem(FidelOptionsAdapter.PROGRAM_NAME_KEY));
71
- assertThat(FidelOptionsAdapter.OPTION_KEYS, hasItem(FidelOptionsAdapter.DELETE_INSTRUCTIONS_KEY));
72
- assertThat(FidelOptionsAdapter.OPTION_KEYS, hasItem(FidelOptionsAdapter.PRIVACY_URL_KEY));
73
- assertThat(FidelOptionsAdapter.OPTION_KEYS, hasItem(FidelOptionsAdapter.TERMS_CONDITIONS_URL_KEY));
74
- assertThat(FidelOptionsAdapter.OPTION_KEYS, hasItem(FidelOptionsAdapter.META_DATA_KEY));
75
- assertThat(FidelOptionsAdapter.OPTION_KEYS, hasItem(FidelOptionsAdapter.ALLOWED_COUNTRIES_KEY));
76
- assertThat(FidelOptionsAdapter.OPTION_KEYS, hasItem(FidelOptionsAdapter.CARD_SCHEMES_KEY));
77
- for (String key: FidelOptionsAdapter.OPTION_KEYS) {
78
- //for the card schemes value we only check if it exists
79
- if (!key.equals(FidelOptionsAdapter.CARD_SCHEMES_KEY)) {
80
- assertToCheckForKey(key);
81
- }
82
- }
83
- }
84
-
85
- public void test_ChecksForSupportedCardSchemes() {
86
- ReadableMapStub map = ReadableMapStub.mapWithExistingKey(FidelOptionsAdapter.CARD_SCHEMES_KEY);
87
- sut.process(map);
88
- assertThat(map.keyNamesCheckedFor, hasItem(FidelOptionsAdapter.CARD_SCHEMES_KEY));
89
- }
90
-
91
- //Tests when keys are present, but no data is found for that key
92
- @Test
93
- public void test_IfHasBannerImageKeyButNoImage_DontSendDataToImageAdapter() {
94
- map = ReadableMapStub.mapWithExistingKeyButNoValue(FidelOptionsAdapter.BANNER_IMAGE_KEY);
95
- sut.process(map);
96
- assertFalse(imageAdapterSpy.hasAskedToProcessData);
97
- }
98
-
99
- @Test
100
- public void test_IfHasAutoScanKeyButNoValue_DontSetItToTheSDK() {
101
- map = ReadableMapStub.mapWithExistingKeyButNoValue(FidelOptionsAdapter.AUTO_SCAN_KEY);
102
- map.boolToReturn = true;
103
- sut.process(map);
104
- assertFalse(Fidel.autoScan);
105
- }
106
-
107
- @Test
108
- public void test_IfHasCompanyNameKeyButNoValue_DontSetItToTheSDK() {
109
- String keyToTestFor = FidelOptionsAdapter.COMPANY_NAME_KEY;
110
- map = ReadableMapStub.mapWithExistingKeyButNoValue(keyToTestFor);
111
- processWithString(TEST_COMPANY_NAME, keyToTestFor);
112
- assertNotEqualsString(keyToTestFor, Fidel.companyName);
113
- }
114
-
115
- @Test
116
- public void test_IfHasProgramNameKeyButNoValue_DontSetItToTheSDK() {
117
- String keyToTestFor = FidelOptionsAdapter.PROGRAM_NAME_KEY;
118
- map = ReadableMapStub.mapWithExistingKeyButNoValue(keyToTestFor);
119
- processWithString(TEST_PROGRAM_NAME, keyToTestFor);
120
- assertNotEqualsString(keyToTestFor, Fidel.programName);
121
- }
122
-
123
- @Test
124
- public void test_IfHasDeleteInstructionsKeyButNoValue_DontSetThemToTheSDK() {
125
- String keyToTestFor = FidelOptionsAdapter.DELETE_INSTRUCTIONS_KEY;
126
- map = ReadableMapStub.mapWithExistingKeyButNoValue(keyToTestFor);
127
- processWithString(TEST_DELETE_INSTRUCTIONS, keyToTestFor);
128
- assertNotEqualsString(keyToTestFor, Fidel.deleteInstructions);
129
- }
130
-
131
- @Test
132
- public void test_IfHasPrivacyURLKeyButNoValue_DontSetItToTheSDK() {
133
- String keyToTestFor = FidelOptionsAdapter.PRIVACY_URL_KEY;
134
- map = ReadableMapStub.mapWithExistingKeyButNoValue(keyToTestFor);
135
- processWithString(TEST_PRIVACY_URL, keyToTestFor);
136
- assertNotEqualsString(keyToTestFor, Fidel.privacyURL);
137
- }
138
-
139
- @Test
140
- public void test_IfHasTermsConditionsURLKeyButNoValue_DontSetItToTheSDK() {
141
- String keyToTestFor = FidelOptionsAdapter.TERMS_CONDITIONS_URL_KEY;
142
- map = ReadableMapStub.mapWithExistingKeyButNoValue(keyToTestFor);
143
- processWithString(TEST_TERMS_CONDITIONS_URL, keyToTestFor);
144
- assertNotEqualsString(keyToTestFor, Fidel.termsConditionsURL);
145
- }
146
-
147
- @Test
148
- public void test_IfHasMetaDataKeyButNoValue_DontSetItToTheSDK() {
149
- String keyToTestFor = FidelOptionsAdapter.META_DATA_KEY;
150
- map = ReadableMapStub.mapWithExistingKeyButNoValue(keyToTestFor);
151
- processWithMap(keyToTestFor, TEST_META_DATA());
152
- assertNull(Fidel.metaData);
153
- }
154
-
155
- @Test
156
- public void test_IfHasCountryKeyButNoValue_DontSetItToTheSDK() {
157
- String keyToTestFor = FidelOptionsAdapter.ALLOWED_COUNTRIES_KEY;
158
- map = ReadableMapStub.mapWithExistingKeyButNoValue(keyToTestFor);
159
- processWithCountryInt();
160
- assertNull(Fidel.allowedCountries);
161
- }
162
-
163
- //Tests when keys are missing
164
- @Test
165
- public void test_IfDoesntHaveBannerImageKey_DontSendDataToImageAdapter() {
166
- map = ReadableMapStub.mapWithNoKey();
167
- sut.process(map);
168
- assertFalse(imageAdapterSpy.hasAskedToProcessData);
169
- }
170
-
171
- @Test
172
- public void test_IfDoesntHaveAutoScanKey_DontSetItToTheSDK() {
173
- map = ReadableMapStub.mapWithNoKey();
174
- map.boolToReturn = true;
175
- sut.process(map);
176
- assertFalse(Fidel.autoScan);
177
- }
178
-
179
- @Test
180
- public void test_IfDoesntHaveCompanyNameKey_DontSetItToTheSDK() {
181
- map = ReadableMapStub.mapWithNoKey();
182
- String key = FidelOptionsAdapter.COMPANY_NAME_KEY;
183
- processWithString(TEST_COMPANY_NAME, key);
184
- assertNotEqualsString(key, Fidel.companyName);
185
- }
186
-
187
- @Test
188
- public void test_IfDoesntHaveProgramNameKey_DontSetItToTheSDK() {
189
- map = ReadableMapStub.mapWithNoKey();
190
- String key = FidelOptionsAdapter.PROGRAM_NAME_KEY;
191
- processWithString(TEST_PROGRAM_NAME, key);
192
- assertNotEqualsString(key, Fidel.programName);
193
- }
194
-
195
- @Test
196
- public void test_IfDoesntHaveDeleteInstructionsKey_DontSetThemToTheSDK() {
197
- map = ReadableMapStub.mapWithNoKey();
198
- String key = FidelOptionsAdapter.DELETE_INSTRUCTIONS_KEY;
199
- processWithString(TEST_DELETE_INSTRUCTIONS, key);
200
- assertNotEqualsString(key, Fidel.deleteInstructions);
201
- }
202
-
203
- @Test
204
- public void test_IfDoesntHavePrivacyURLKey_DontSetItToTheSDK() {
205
- map = ReadableMapStub.mapWithNoKey();
206
- String key = FidelOptionsAdapter.PRIVACY_URL_KEY;
207
- processWithString(TEST_PRIVACY_URL, key);
208
- assertNotEqualsString(key, Fidel.privacyURL);
209
- }
210
-
211
- @Test
212
- public void test_IfDoesntHaveTermsConditionsURLKey_DontSetItToTheSDK() {
213
- map = ReadableMapStub.mapWithNoKey();
214
- String key = FidelOptionsAdapter.TERMS_CONDITIONS_URL_KEY;
215
- processWithString(TEST_TERMS_CONDITIONS_URL, key);
216
- assertNotEqualsString(key, Fidel.termsConditionsURL);
217
- }
218
-
219
- @Test
220
- public void test_IfDoesntHaveMetaDataKey_DontSetItToTheSDK() {
221
- String key = FidelOptionsAdapter.META_DATA_KEY;
222
- map = ReadableMapStub.mapWithNoKey();
223
- processWithMap(key, TEST_META_DATA());
224
- assertNull(Fidel.metaData);
225
- }
226
-
227
- @Test
228
- public void test_IfDoesntHaveCountryKey_DontSetItToTheSDK() {
229
- map = ReadableMapStub.mapWithNoKey();
230
- processWithCountryInt();
231
- assertNull(Fidel.allowedCountries);
232
- }
233
- @Test
234
- public void test_IfDoesntHaveCardSchemeKey_DontSetItToTheSDK() {
235
- map = ReadableMapStub.mapWithNoKey();
236
- processWithCardSchemes(Fidel.CardScheme.VISA);
237
- assertEquals(EnumSet.allOf(Fidel.CardScheme.class), Fidel.supportedCardSchemes);
238
- }
239
-
240
- //Setting correct values tests
241
- @Test
242
- public void test_WhenImageProcessorSendsBitmap_SendItToImageProcessor() {
243
- String keyToTestFor = FidelOptionsAdapter.BANNER_IMAGE_KEY;
244
- map = ReadableMapStub.mapWithExistingKey(keyToTestFor);
245
- processWithMap(keyToTestFor, new ReadableMapStub());
246
- assertEquals(map.mapsForKeysToReturn.get(keyToTestFor),
247
- imageAdapterSpy.dataToProcess);
248
- }
249
-
250
- @Test
251
- public void test_WhenImageProcessorSendsBitmap_SetItForSDKBannerImage() {
252
- Bitmap newBitmap = Bitmap.createBitmap(100, 200, Bitmap.Config.ALPHA_8);
253
- sut.output(newBitmap);
254
- assertEquals(Fidel.bannerImage, newBitmap);
255
- }
256
-
257
- @Test
258
- public void test_WhenAutoScanValueIsTrue_SetItTrueForTheSDK() {
259
- processWithBoolean(true);
260
- assertTrue(Fidel.autoScan);
261
- }
262
-
263
- @Test
264
- public void test_WhenAutoScanValueIsFalse_SetItFalseForTheSDK() {
265
- processWithBoolean(false);
266
- assertFalse(Fidel.autoScan);
267
- }
268
-
269
- @Test
270
- public void test_WhenCompanyNameValueIsSet_SetItForTheSDK() {
271
- String keyToTestFor = FidelOptionsAdapter.COMPANY_NAME_KEY;
272
- map = ReadableMapStub.mapWithExistingKey(keyToTestFor);
273
- processWithString(TEST_COMPANY_NAME, keyToTestFor);
274
- assertEqualsString(keyToTestFor, Fidel.companyName);
275
- }
276
-
277
- @Test
278
- public void test_WhenProgramNameValueIsSet_SetItForTheSDK() {
279
- String keyToTestFor = FidelOptionsAdapter.PROGRAM_NAME_KEY;
280
- map = ReadableMapStub.mapWithExistingKey(keyToTestFor);
281
- processWithString(TEST_PROGRAM_NAME, keyToTestFor);
282
- assertEqualsString(keyToTestFor, Fidel.programName);
283
- }
284
-
285
- @Test
286
- public void test_WhenDeleteInstructionsValueIsSet_SetItForTheSDK() {
287
- String keyToTestFor = FidelOptionsAdapter.DELETE_INSTRUCTIONS_KEY;
288
- map = ReadableMapStub.mapWithExistingKey(keyToTestFor);
289
- processWithString(TEST_DELETE_INSTRUCTIONS, keyToTestFor);
290
- assertEqualsString(keyToTestFor, Fidel.deleteInstructions);
291
- }
292
-
293
- @Test
294
- public void test_WhenPrivacyURLValueIsSet_SetItForTheSDK() {
295
- String keyToTestFor = FidelOptionsAdapter.PRIVACY_URL_KEY;
296
- map = ReadableMapStub.mapWithExistingKey(keyToTestFor);
297
- processWithString(TEST_PRIVACY_URL, keyToTestFor);
298
- assertEqualsString(keyToTestFor, Fidel.privacyURL);
299
- }
300
-
301
- @Test
302
- public void test_WhenTermsConditionsURLValueIsSet_SetItForTheSDK() {
303
- String keyToTestFor = FidelOptionsAdapter.TERMS_CONDITIONS_URL_KEY;
304
- map = ReadableMapStub.mapWithExistingKey(keyToTestFor);
305
- processWithString(TEST_TERMS_CONDITIONS_URL, keyToTestFor);
306
- assertEqualsString(keyToTestFor, Fidel.termsConditionsURL);
307
- }
308
-
309
- @Test
310
- public void test_WhenMetaDataValueIsSet_ConvertItToJSONForTheSDK() {
311
- String keyToTestFor = FidelOptionsAdapter.META_DATA_KEY;
312
- map = ReadableMapStub.mapWithExistingKey(keyToTestFor);
313
- processWithMap(keyToTestFor, TEST_META_DATA());
314
- assertMapEqualsWithJSONObject(TEST_HASH_MAP(), Fidel.metaData);
315
- }
316
-
317
- @Test
318
- public void test_WhenAllowedCountriesAreSet_ConvertThemWithCountryAdapterForTheSDK() {
319
- String keyToTestFor = FidelOptionsAdapter.ALLOWED_COUNTRIES_KEY;
320
- map = ReadableMapStub.mapWithExistingKey(keyToTestFor);
321
- processWithCountryInt();
322
- assertEquals(countryAdapterStub.countriesToReturn, Fidel.allowedCountries);
323
- }
324
-
325
- @Test
326
- public void test_WhenCardSchemesAreSet_ConvertThemWithCountryAdapterForTheSDK() {
327
- String keyToTestFor = FidelOptionsAdapter.CARD_SCHEMES_KEY;
328
- map = ReadableMapStub.mapWithExistingKey(keyToTestFor);
329
- processWithCardSchemes(Fidel.CardScheme.VISA, Fidel.CardScheme.MASTERCARD);
330
- assertEquals(map.readableArrayToReturn, cardSchemesAdapterStub.cardSchemesReceived);
331
- }
332
-
333
- @Test
334
- public void test_WhenCardSchemesAreSet_SetThemForTheSDK() {
335
- String keyToTestFor = FidelOptionsAdapter.CARD_SCHEMES_KEY;
336
- map = ReadableMapStub.mapWithExistingKey(keyToTestFor);
337
- Fidel.CardScheme[] expectedSchemes = {Fidel.CardScheme.VISA, Fidel.CardScheme.MASTERCARD};
338
- Set<Fidel.CardScheme> expectedSchemesSet = EnumSet.copyOf(Arrays.asList(expectedSchemes));
339
- processWithCardSchemes(expectedSchemes);
340
- assertEquals(expectedSchemesSet, Fidel.supportedCardSchemes);
341
- }
342
-
343
- //Exposed constants tests
344
- @Test
345
- public void test_WhenAskedForConstants_IncludeConstantsFromCountriesAdapter() {
346
- Map<String, Object> actualConstants = sut.getConstants();
347
- Map<String, Object> expectedConstants = countryAdapterStub.getConstants();
348
- assertMapContainsMap(actualConstants, expectedConstants);
349
- }
350
-
351
- @Test
352
- public void test_WhenAskedForConstants_IncludeConstantsFromCardSchemesAdapter() {
353
- Map<String, Object> actualConstants = sut.getConstants();
354
- Map<String, Object> expectedConstants = cardSchemesAdapterStub.getConstants();
355
- assertMapContainsMap(actualConstants, expectedConstants);
356
- }
357
-
358
- //Helper functions
359
- private static HashMap<String, Object> TEST_HASH_MAP() {
360
- HashMap<String, Object> hashmapToReturn = new HashMap<>();
361
- hashmapToReturn.put("stringKey", "StringVal");
362
- hashmapToReturn.put("intKey", 3);
363
- hashmapToReturn.put("doubleKey", 4.5);
364
- return hashmapToReturn;
365
- }
366
-
367
- private static ReadableMapStub TEST_META_DATA() {
368
- ReadableMapStub map = new ReadableMapStub();
369
- map.hashMapToReturn = TEST_HASH_MAP();
370
- return map;
371
- }
372
-
373
- private void processWithBoolean(Boolean bool) {
374
- map = ReadableMapStub.mapWithExistingKey(FidelOptionsAdapter.AUTO_SCAN_KEY);
375
- map.boolToReturn = bool;
376
- sut.process(map);
377
- }
378
- private void processWithString(String string, String key) {
379
- map.stringForKeyToReturn.put(key, string);
380
- sut.process(map);
381
- }
382
- private void processWithMap(String key, ReadableMap mapToReturn) {
383
- map.mapsForKeysToReturn.put(key, mapToReturn);
384
- sut.process(map);
385
- }
386
- private void processWithCountryInt() {
387
- countryAdapterStub.countriesToReturn = TEST_COUNTRIES;
388
- map.intToReturn = TEST_COUNTRY_NUMBER;
389
- sut.process(map);
390
- }
391
- private void processWithCardSchemes(Fidel.CardScheme... cardSchemes) {
392
- cardSchemesAdapterStub.fakeAdaptedCardSchemesToReturn = EnumSet.copyOf(Arrays.asList(cardSchemes));
393
- map.readableArrayToReturn = JavaOnlyArray.of((Object[]) cardSchemes);
394
- sut.process(map);
395
- }
396
-
397
- private void assertEqualsString(String key, String valueToCheckWith) {
398
- sut.process(map);
399
- assertEquals(map.stringForKeyToReturn.get(key), valueToCheckWith);
400
- }
401
-
402
- private void assertNotEqualsString(String key, String valueToCheckWith) {
403
- sut.process(map);
404
- assertNotEquals(map.stringForKeyToReturn.get(key), valueToCheckWith);
405
- }
406
-
407
- private void assertToCheckForKey(String keyToCheckFor) {
408
- ReadableMapStub map = ReadableMapStub.mapWithExistingKey(keyToCheckFor);
409
- sut.process(map);
410
- assertThat(map.keyNamesCheckedFor, hasItem(keyToCheckFor));
411
- assertThat(map.keyNamesVerifiedNullFor, hasItem(keyToCheckFor));
412
- assertThat(map.keyNamesAskedFor, hasItem(keyToCheckFor));
413
- }
414
- }
@@ -1,65 +0,0 @@
1
- package com.fidelreactlibrary;
2
-
3
- import com.fidel.sdk.Fidel;
4
- import com.fidelreactlibrary.adapters.FidelSetupAdapter;
5
- import com.fidelreactlibrary.fakes.ReadableMapStub;
6
-
7
- import org.junit.After;
8
- import org.junit.Before;
9
- import org.junit.Test;
10
-
11
- import static junit.framework.TestCase.*;
12
-
13
- public class FidelSetupAdapterTests {
14
-
15
- private static final String TEST_API_KEY = "pk_123123123";
16
- private static final String TEST_PROGRAM_ID = "234234";
17
-
18
- private FidelSetupAdapter sut;
19
-
20
- @Before
21
- public final void setUp() {
22
- sut = new FidelSetupAdapter();
23
- }
24
-
25
- @After
26
- public final void tearDown() {
27
- sut = null;
28
- Fidel.apiKey = null;
29
- Fidel.programId = null;
30
- }
31
-
32
- @Test
33
- public void test_WhenDataHasNoApiKey_DontSetItToSDK() {
34
- ReadableMapStub mapStub = ReadableMapStub.mapWithNoKey();
35
- sut.process(mapStub);
36
- assertNull(Fidel.apiKey);
37
- }
38
-
39
- @Test
40
- public void test_WhenDataHasNoProgramIDKey_DontSetItToSDK() {
41
- ReadableMapStub mapStub = ReadableMapStub.mapWithNoKey();
42
- sut.process(mapStub);
43
- assertNull(Fidel.programId);
44
- }
45
-
46
- @Test
47
- public void test_WhenApiKeyIsSet_SetItToSDK() {
48
- String expectedValue = TEST_API_KEY;
49
- processWithString(FidelSetupAdapter.API_KEY, expectedValue);
50
- assertEquals(expectedValue, Fidel.apiKey);
51
- }
52
-
53
- @Test
54
- public void test_WhenProgramIDIsSet_SetItToSDK() {
55
- String expectedValue = TEST_PROGRAM_ID;
56
- processWithString(FidelSetupAdapter.PROGRAM_ID_KEY, expectedValue);
57
- assertEquals(expectedValue, Fidel.programId);
58
- }
59
-
60
- private void processWithString(String key, String value) {
61
- ReadableMapStub mapStub = ReadableMapStub.mapWithExistingKey(key);
62
- mapStub.stringForKeyToReturn.put(key, value);
63
- sut.process(mapStub);
64
- }
65
- }
@@ -1,186 +0,0 @@
1
- package com.fidelreactlibrary;
2
-
3
- import android.os.Parcelable;
4
-
5
- import com.facebook.react.bridge.JavaOnlyMap;
6
- import com.facebook.react.bridge.ReadableMap;
7
- import com.facebook.react.bridge.WritableMap;
8
- import com.fidel.sdk.LinkResult;
9
- import com.fidel.sdk.LinkResultError;
10
- import com.fidel.sdk.LinkResultErrorCode;
11
- import com.fidelreactlibrary.adapters.WritableMapDataConverter;
12
- import com.fidelreactlibrary.adapters.abstraction.ObjectFactory;
13
-
14
- import org.json.JSONException;
15
- import org.json.JSONObject;
16
- import org.junit.After;
17
- import org.junit.Before;
18
- import org.junit.Test;
19
- import org.junit.runner.RunWith;
20
- import org.robolectric.RobolectricTestRunner;
21
-
22
- import java.lang.reflect.Field;
23
-
24
- import static com.fidelreactlibrary.helpers.AssertHelpers.assertMapEqualsWithJSONObject;
25
- import static org.junit.Assert.*;
26
-
27
- //Custom test runner is necessary for being able to use JSONObject
28
- @RunWith(RobolectricTestRunner.class)
29
- public class WritableMapDataConverterTests {
30
-
31
- private static final String TEST_CARD_ID = "Test Card ID";
32
- private static final String TEST_ERROR_MESSAGE = "Test Error Message";
33
-
34
- private WritableMapDataConverter sut;
35
-
36
- @Before
37
- public final void setUp() {
38
- sut = new WritableMapDataConverter(new ObjectFactory<WritableMap>() {
39
- @Override
40
- public WritableMap create() {
41
- return new JavaOnlyMap();
42
- }
43
- });
44
- }
45
-
46
- @After
47
- public final void tearDown() {
48
- sut = null;
49
- }
50
-
51
- @Test
52
- public void test_WhenAskedToConvertNullObject_ReturnNull() {
53
- assertNull(sut.getConvertedDataFor(null));
54
- }
55
-
56
- @Test
57
- public void test_WhenExpectedNonNullStringFieldContainsNullValueInLinkResult_ReturnMapWithNullValueForIt() {
58
- LinkResult linkResult = new LinkResult(TEST_CARD_ID);
59
- setFieldsFor(linkResult);
60
- linkResult.accountId = null;
61
- WritableMap receivedMap = sut.getConvertedDataFor(linkResult);
62
- assertNull(receivedMap.getString("accountId"));
63
- }
64
-
65
- @Test
66
- public void test_WhenExpectedNonNullBooleanFieldContainsNullValueInLinkResult_ReturnMapWithFalseValueForIt() {
67
- LinkResult linkResult = new LinkResult(TEST_CARD_ID);
68
- setFieldsFor(linkResult);
69
- linkResult.live = null;
70
- WritableMap receivedMap = sut.getConvertedDataFor(linkResult);
71
- assertFalse(receivedMap.getBoolean("live"));
72
- }
73
-
74
- @Test
75
- public void test_WhenExpectedLinkResultWithNullMetaData_ReturnMapWithNullMetaData() {
76
- LinkResult linkResult = new LinkResult(TEST_CARD_ID);
77
- setFieldsFor(linkResult);
78
- linkResult.metaData = null;
79
- WritableMap receivedMap = sut.getConvertedDataFor(linkResult);
80
- assertNull(receivedMap.getMap("metaData"));
81
- }
82
-
83
- @Test
84
- public void test_WhenConvertingLinkResultWithError_AndErrorCodeIsUnknown_SetNullErrorCodeField() {
85
- LinkResult linkResult = new LinkResult(null, TEST_ERROR_MESSAGE, "2021-05-19T12:37:55.278Z");
86
- Object objectToConvert = linkResult.getError();
87
-
88
- WritableMap receivedMap = sut.getConvertedDataFor(objectToConvert);
89
- assertNotNull(receivedMap);
90
- assertNull(receivedMap.getString("code"));
91
- }
92
-
93
- @Test
94
- public void test_WhenConvertingValidLinkResult_IncludeAllObjectFields() throws IllegalAccessException {
95
- LinkResult linkResult = new LinkResult(TEST_CARD_ID);
96
- setFieldsFor(linkResult);
97
-
98
- WritableMap receivedMap = sut.getConvertedDataFor(linkResult);
99
-
100
- for (Field field: linkResult.getClass().getDeclaredFields()) {
101
- if (field.getType() == String.class) {
102
- String receivedString = receivedMap.getString(field.getName());
103
- assertEquals(receivedString, field.get(linkResult));
104
- }
105
- else if (field.getType() == boolean.class || field.getType() == Boolean.class) {
106
- boolean receivedVal = receivedMap.getBoolean(field.getName());
107
- assertEquals(receivedVal, field.get(linkResult));
108
- }
109
- else if (field.getType() == int.class) {
110
- int receivedVal = receivedMap.getInt(field.getName());
111
- assertEquals(receivedVal, field.get(linkResult));
112
- }
113
- else if (field.getType() == JSONObject.class) {
114
- ReadableMap mapField = receivedMap.getMap(field.getName());
115
- JSONObject jsonField = (JSONObject)field.get(linkResult);
116
- assertMapEqualsWithJSONObject(mapField.toHashMap(), jsonField);
117
- }
118
- else if (field.getType() != Parcelable.Creator.class && field.getType() != LinkResultError.class && !field.getName().equals("$jacocoData")) {
119
- fail("Some of the link result properties are not converted" + field + " field name: " + field.getName());
120
- }
121
- }
122
- }
123
-
124
- @Test
125
- public void test_WhenConvertingLinkResultWithError_IncludeAllErrorFields() throws IllegalAccessException {
126
- LinkResultErrorCode errorCode = LinkResultErrorCode.USER_CANCELED;
127
- LinkResult linkResult = new LinkResult(errorCode, TEST_ERROR_MESSAGE, "2021-05-19T12:37:55.278Z");
128
- Object objectToConvert = linkResult.getError();
129
-
130
- WritableMap receivedMap = sut.getConvertedDataFor(objectToConvert);
131
-
132
- for (Field field: objectToConvert.getClass().getDeclaredFields()) {
133
- if (field.getType() == String.class) {
134
- String receivedString = receivedMap.getString(field.getName());
135
- assertEquals(receivedString, field.get(objectToConvert));
136
- }
137
- else if (field.getType() == LinkResultErrorCode.class) {
138
- String displayFieldName = field.getName().equals("errorCode") ? "code" : field.getName();
139
- String receivedErrorCodeString = receivedMap.getString(displayFieldName);
140
- LinkResultErrorCode expectedErrorCode = (LinkResultErrorCode) field.get(objectToConvert);
141
- String expectedErrorCodeString = expectedErrorCode.toString().toLowerCase();
142
- assertEquals(expectedErrorCodeString, receivedErrorCodeString);
143
- }
144
- else if (!field.getName().equals("$jacocoData")) {
145
- fail("Some of the link result properties are not converted" + field + " field name: " + field.getName());
146
- }
147
- }
148
- }
149
-
150
- //Helpers
151
- private void setFieldsFor(Object object) {
152
- for (Field field: object.getClass().getDeclaredFields()) {
153
- try {
154
- if (field.getType() == String.class) {
155
- field.set(object, field.getName()+"Value");
156
- }
157
- else if (field.getType() == boolean.class) {
158
- field.setBoolean(object, getRandomBoolean());
159
- }
160
- else if (field.getType() == int.class) {
161
- field.setInt(object, getRandomInt());
162
- }
163
- else if (field.getType() == JSONObject.class) {
164
- JSONObject json = new JSONObject();
165
- json.put("keyString", "StringValue");
166
- json.put("keyInt", getRandomInt());
167
- json.put("keyBool", getRandomBoolean());
168
- JSONObject internalJSON = new JSONObject();
169
- internalJSON.put("internalJSONKey1", getRandomInt());
170
- internalJSON.put("internalJSONKey2", new JSONObject());
171
- json.put("keyJSON", internalJSON);
172
- field.set(object, json);
173
- }
174
- } catch (IllegalAccessException | JSONException e) {
175
- fail();
176
- }
177
- }
178
- }
179
-
180
- private static boolean getRandomBoolean() {
181
- return Math.random() < 0.5;
182
- }
183
- private static int getRandomInt() {
184
- return (int)(Math.random() * 1000);
185
- }
186
- }
@@ -1,12 +0,0 @@
1
- package com.fidelreactlibrary.fakes;
2
-
3
- import com.facebook.react.bridge.Callback;
4
- import com.fidelreactlibrary.events.CallbackInput;
5
-
6
- public final class CallbackInputSpy implements CallbackInput {
7
- public Callback receivedCallback;
8
- @Override
9
- public void callbackIsReady(Callback callback) {
10
- receivedCallback = callback;
11
- }
12
- }
@@ -1,18 +0,0 @@
1
- package com.fidelreactlibrary.fakes;
2
-
3
- import com.facebook.react.bridge.Callback;
4
- import com.facebook.react.bridge.ReadableMap;
5
-
6
- public final class CallbackSpy implements Callback {
7
-
8
- public Boolean didInvoke = false;
9
- public ReadableMap receivedResultMap;
10
- public ReadableMap receivedErrorMap;
11
-
12
- @Override
13
- public void invoke(Object... args) {
14
- receivedErrorMap = (ReadableMap)args[0];
15
- receivedResultMap = (ReadableMap)args[1];
16
- didInvoke = true;
17
- }
18
- }