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
@@ -2,13 +2,17 @@ package com.fidelreactlibrary;
2
2
 
3
3
  import android.content.Context;
4
4
 
5
+ import com.facebook.react.bridge.ReadableMap;
6
+ import com.fidelapi.Fidel;
7
+ import com.fidelapi.entities.abstraction.OnCardVerificationChoiceSelectedObserver;
8
+ import com.fidelapi.entities.abstraction.OnCardVerificationStartedObserver;
9
+ import com.fidelapi.entities.abstraction.OnResultObserver;
5
10
  import com.fidelreactlibrary.adapters.abstraction.ConstantsProvider;
6
- import com.fidelreactlibrary.fakes.CallbackInputSpy;
7
- import com.fidelreactlibrary.fakes.CallbackSpy;
8
11
  import com.fidelreactlibrary.fakes.ConstantsProviderStub;
9
12
  import com.fidelreactlibrary.fakes.DataProcessorSpy;
10
13
  import com.fidelreactlibrary.fakes.ReactContextMock;
11
14
  import com.fidelreactlibrary.fakes.ReadableMapStub;
15
+ import com.fidelreactlibrary.fakes.VerificationConfigurationAdapterStub;
12
16
 
13
17
  import org.junit.After;
14
18
  import org.junit.Before;
@@ -26,47 +30,44 @@ import static org.junit.Assert.*;
26
30
 
27
31
  @RunWith(AndroidJUnit4.class)
28
32
  public class FidelModuleTests {
29
-
33
+
30
34
  private FidelModule sut;
31
- private DataProcessorSpy optionsAdapterSpy;
32
- private DataProcessorSpy setupAdapterSpy;
33
- private List<ConstantsProvider> constantsProviderListStub;
34
- private CallbackInputSpy callbackInputSpy;
35
-
35
+ private DataProcessorSpy<ReadableMap> setupAdapterSpy = new DataProcessorSpy<>();;
36
+ private List<ConstantsProvider> constantsProviderListStub = new ArrayList<>();
37
+ private final OnResultObserver testOnResultObserver = fidelResult -> {};
38
+ private final OnCardVerificationStartedObserver testOnCardVerificationStartedObserver = consentDetails -> {};
39
+
40
+ private final OnCardVerificationChoiceSelectedObserver testOnCardVerificationChoiceSelectedObserver = cardVerificationChoice -> {};
41
+
36
42
  @Before
37
43
  public final void setUp() {
38
44
  Context context = ApplicationProvider.getApplicationContext();
39
45
  ReactContextMock reactContext = new ReactContextMock(context);
40
- optionsAdapterSpy = new DataProcessorSpy();
41
- setupAdapterSpy = new DataProcessorSpy();
42
- constantsProviderListStub = new ArrayList<>();
43
- ConstantsProvider constantsProvider = new ConstantsProviderStub("testModuleConstantKey", 345);
44
- constantsProviderListStub.add(constantsProvider);
45
- callbackInputSpy = new CallbackInputSpy();
46
46
  sut = new FidelModule(reactContext,
47
47
  setupAdapterSpy,
48
- optionsAdapterSpy,
48
+ testOnResultObserver,
49
+ testOnCardVerificationStartedObserver,
50
+ testOnCardVerificationChoiceSelectedObserver,
49
51
  constantsProviderListStub,
50
- callbackInputSpy);
52
+ new VerificationConfigurationAdapterStub()
53
+ );
51
54
  }
52
-
55
+
53
56
  @After
54
57
  public final void tearDown() {
55
58
  sut = null;
56
- optionsAdapterSpy = null;
59
+ setupAdapterSpy = null;
57
60
  constantsProviderListStub = null;
58
61
  }
59
62
 
60
63
  @Test
61
- public void test_WhenSettingOptions_ForwardThemToOptionsAdapter() {
62
- ReadableMapStub fakeMap = new ReadableMapStub();
63
- sut.setOptions(fakeMap);
64
- assertEquals(optionsAdapterSpy.dataToProcess, fakeMap);
65
- }
66
-
67
- @Test
68
- public void test_WhenGettingConstants_ReturnConstantsFromFirstConstantsProvider() {
69
- assertMapContainsMap(sut.getConstants(), constantsProviderListStub.get(0).getConstants());
64
+ public void test_WhenGettingConstants_ReturnConstantsFromAllConstantsProvider() {
65
+ ConstantsProvider constantsProvider1 = new ConstantsProviderStub("testModuleConstantKey", 345);
66
+ ConstantsProvider constantsProvider2 = new ConstantsProviderStub("testModuleConstantKey2", 348);
67
+ constantsProviderListStub.add(constantsProvider1);
68
+ constantsProviderListStub.add(constantsProvider2);
69
+ assertMapContainsMap(sut.getConstants(), constantsProvider1.getConstants());
70
+ assertMapContainsMap(sut.getConstants(), constantsProvider2.getConstants());
70
71
  }
71
72
 
72
73
  @Test
@@ -77,9 +78,27 @@ public class FidelModuleTests {
77
78
  }
78
79
 
79
80
  @Test
80
- public void test_WhenAskedToOpenForm_SendCallbackToInput() {
81
- CallbackSpy callback = new CallbackSpy();
82
- sut.openForm(callback);
83
- assertEquals(callbackInputSpy.receivedCallback, callback);
81
+ public void test_WhenAResultAvailableListenerHasBeenAdded_AddTheOnResultObserverToFidel() {
82
+ sut.addListener("ResultAvailable");
83
+ assertEquals(testOnResultObserver, Fidel.onResult);
84
+ }
85
+
86
+ @Test
87
+ public void test_WhenACardVerificationStartedListenerHasBeenAdded_AddTheObserverToFidel() {
88
+ sut.addListener("CardVerificationStarted");
89
+ assertEquals(testOnCardVerificationStartedObserver, Fidel.onCardVerificationStarted);
90
+ }
91
+
92
+ @Test
93
+ public void test_WhenACardVerificationChoiceSelectedListenerHasBeenAdded_AddTheObserverToFidel() {
94
+ sut.addListener("CardVerificationChoiceSelected");
95
+ assertEquals(testOnCardVerificationChoiceSelectedObserver, Fidel.onCardVerificationChoiceSelected);
96
+ }
97
+
98
+ @Test
99
+ public void test_WhenListenersHaveBeenRemoved_AddTheOnResultObserverToFidel() {
100
+ Fidel.onResult = testOnResultObserver;
101
+ sut.removeListeners(0);
102
+ assertNull(Fidel.onResult);
84
103
  }
85
104
  }
@@ -3,7 +3,6 @@ package com.fidelreactlibrary;
3
3
  import android.content.Context;
4
4
 
5
5
  import com.facebook.react.bridge.NativeModule;
6
- import com.fidel.sdk.Fidel;
7
6
  import com.fidelreactlibrary.fakes.ReactContextMock;
8
7
 
9
8
  import org.junit.Test;
@@ -1,9 +1,8 @@
1
- package com.fidelreactlibrary;
1
+ package com.fidelreactlibrary.adapters;
2
2
 
3
3
  import com.facebook.react.bridge.JavaOnlyArray;
4
4
  import com.facebook.react.bridge.ReadableArray;
5
- import com.fidel.sdk.Fidel;
6
- import com.fidelreactlibrary.adapters.FidelCardSchemesAdapter;
5
+ import com.fidelapi.entities.CardScheme;
7
6
 
8
7
  import org.junit.Test;
9
8
 
@@ -13,12 +12,11 @@ import java.util.HashMap;
13
12
  import java.util.Map;
14
13
  import java.util.Set;
15
14
 
16
- import javax.annotation.Nonnull;
17
-
18
15
  import static org.hamcrest.MatcherAssert.assertThat;
19
16
  import static org.hamcrest.core.IsCollectionContaining.hasItem;
20
- import static org.junit.Assert.assertEquals;
21
- import static org.junit.Assert.assertNull;
17
+ import static org.junit.Assert.*;
18
+
19
+ import androidx.annotation.NonNull;
22
20
 
23
21
  public final class FidelCardSchemesAdapterTests {
24
22
  private static final String CARD_SCHEMES_KEY = "CardScheme";
@@ -50,105 +48,111 @@ public final class FidelCardSchemesAdapterTests {
50
48
  assertThat(getConstantKeyValues().keySet(), hasItem(MASTERCARD_SCHEME_KEY));
51
49
  }
52
50
 
51
+ @Test
52
+ public void test_ToAdaptVisaCardSchemeWithCorrectJSValue() {
53
+ assertEquals("visa", sut.jsValue(CardScheme.VISA));
54
+ }
55
+
56
+ @Test
57
+ public void test_ToAdaptMastercardCardSchemeWithCorrectJSValue() {
58
+ assertEquals("mastercard", sut.jsValue(CardScheme.MASTERCARD));
59
+ }
60
+
61
+ @Test
62
+ public void test_ToAdaptAmexCardSchemeWithCorrectJSValue() {
63
+ assertEquals("americanExpress", sut.jsValue(CardScheme.AMERICAN_EXPRESS));
64
+ }
65
+
53
66
  //Test to expose correct card scheme values
54
67
  @Test
55
68
  public void test_ToExposeCorrectVisaValue() {
56
- int cardSchemesValue = getConstantKeyValues().get(VISA_CARD_SCHEME_KEY);
57
- assertEquals(Fidel.CardScheme.VISA.ordinal(), cardSchemesValue);
69
+ String cardSchemesValue = getConstantKeyValues().get(VISA_CARD_SCHEME_KEY);
70
+ assertEquals("visa", cardSchemesValue);
58
71
  }
59
72
 
60
73
  @Test
61
74
  public void test_ToExposeCorrectMastercardValue() {
62
- int cardSchemesValue = getConstantKeyValues().get(MASTERCARD_SCHEME_KEY);
63
- assertEquals(Fidel.CardScheme.MASTERCARD.ordinal(), cardSchemesValue);
75
+ String cardSchemesValue = getConstantKeyValues().get(MASTERCARD_SCHEME_KEY);
76
+ assertEquals("mastercard", cardSchemesValue);
64
77
  }
65
78
 
66
79
  @Test
67
80
  public void test_ToExposeCorrectAmericanExpressValue() {
68
- int cardSchemesValue = getConstantKeyValues().get(AMEX_SCHEME_KEY);
69
- assertEquals(Fidel.CardScheme.AMERICAN_EXPRESS.ordinal(), cardSchemesValue);
81
+ String cardSchemesValue = getConstantKeyValues().get(AMEX_SCHEME_KEY);
82
+ assertEquals("americanExpress", cardSchemesValue);
70
83
  }
71
84
 
72
85
  //Adaptation tests
73
86
  @Test
74
87
  public void test_WhenAdaptingArrayWithVisa_ReturnSetWithVisaCardScheme() {
75
- assertCorrectConversionWithSchemes(Fidel.CardScheme.VISA);
88
+ assertCorrectConversionWithSchemes(CardScheme.VISA);
76
89
  }
77
90
 
78
91
  @Test
79
92
  public void test_WhenAdaptingArrayWithMastercard_ReturnSetWithMastercardCardScheme() {
80
- assertCorrectConversionWithSchemes(Fidel.CardScheme.MASTERCARD);
93
+ assertCorrectConversionWithSchemes(CardScheme.MASTERCARD);
81
94
  }
82
95
 
83
96
  @Test
84
97
  public void test_WhenAdaptingArrayWithAmericanExpress_ReturnSetWithAmericanExpressCardScheme() {
85
- assertCorrectConversionWithSchemes(Fidel.CardScheme.AMERICAN_EXPRESS);
98
+ assertCorrectConversionWithSchemes(CardScheme.AMERICAN_EXPRESS);
86
99
  }
87
100
 
88
101
  @Test
89
102
  public void test_WhenAdaptingArrayWith2Schemes_ReturnSetWith2Schemes() {
90
- Fidel.CardScheme[] expectedSchemes = {
91
- Fidel.CardScheme.VISA,
92
- Fidel.CardScheme.AMERICAN_EXPRESS
103
+ CardScheme[] expectedSchemes = {
104
+ CardScheme.VISA,
105
+ CardScheme.AMERICAN_EXPRESS
93
106
  };
94
107
  assertCorrectConversionWithSchemes(expectedSchemes);
95
108
  }
96
109
 
97
110
  @Test
98
111
  public void test_WhenAdaptingArrayWith3Schemes_ReturnSetWith2Schemes() {
99
- Fidel.CardScheme[] expectedSchemes = {
100
- Fidel.CardScheme.VISA,
101
- Fidel.CardScheme.MASTERCARD,
102
- Fidel.CardScheme.AMERICAN_EXPRESS
112
+ CardScheme[] expectedSchemes = {
113
+ CardScheme.VISA,
114
+ CardScheme.MASTERCARD,
115
+ CardScheme.AMERICAN_EXPRESS
103
116
  };
104
117
  assertCorrectConversionWithSchemes(expectedSchemes);
105
118
  }
106
119
 
107
120
  @Test
108
121
  public void test_WhenAdapting0Schemes_ReturnEmptySet() {
109
- Set<Fidel.CardScheme> result = sut.cardSchemesWithReadableArray(new JavaOnlyArray());
122
+ Set<CardScheme> result = sut.cardSchemesWithReadableArray(new JavaOnlyArray());
110
123
  assertEquals(0, result.size());
111
124
  }
112
125
 
113
126
  @Test
114
- public void test_WhenAdaptingNullSchemes_ReturnNullSet() {
115
- assertNull(sut.cardSchemesWithReadableArray(null));
127
+ public void test_WhenAdaptingNullSchemes_ReturnEmptySet() {
128
+ assertTrue(sut.cardSchemesWithReadableArray(null).isEmpty());
116
129
  }
117
130
 
118
131
  @Test
119
132
  public void test_WhenAdaptingSchemeListWithInvalidValues_IgnoreTheInvalidValues() {
120
- float invalidValue = (float) Fidel.CardScheme.values().length + 10;
121
- ReadableArray invalidDoubleValues = JavaOnlyArray.of(invalidValue, Fidel.CardScheme.VISA.ordinal());
122
- Set<Fidel.CardScheme> result = sut.cardSchemesWithReadableArray(invalidDoubleValues);
123
- assertEquals(EnumSet.of(Fidel.CardScheme.VISA), result);
124
- }
125
-
126
- @Test
127
- public void test_WhenAdaptingSchemeListWithValidFloatValue_AdaptValidFloatValue() {
128
- double validDoubleValue = (double) Fidel.CardScheme.MASTERCARD.ordinal();
129
- ReadableArray invalidDoubleValues = JavaOnlyArray.of(validDoubleValue, Fidel.CardScheme.VISA.ordinal());
130
- Set<Fidel.CardScheme> result = sut.cardSchemesWithReadableArray(invalidDoubleValues);
131
- assertEquals(EnumSet.of(Fidel.CardScheme.VISA, Fidel.CardScheme.MASTERCARD), result);
133
+ float invalidValue = (float) CardScheme.values().length + 10;
134
+ ReadableArray invalidDoubleValues = JavaOnlyArray.of(invalidValue, sut.jsValue(CardScheme.VISA));
135
+ Set<CardScheme> result = sut.cardSchemesWithReadableArray(invalidDoubleValues);
136
+ assertEquals(EnumSet.of(CardScheme.VISA), result);
132
137
  }
133
138
 
134
139
  //Helpers
135
- private @Nonnull Map<String, Integer> getConstantKeyValues() {
140
+ private @NonNull Map<String, String> getConstantKeyValues() {
136
141
  Map<String, Object> exposedConstants = sut.getConstants();
137
- Map<String, Integer> constantKeyValues = (Map<String, Integer>)exposedConstants.get(CARD_SCHEMES_KEY);
142
+ Map<String, String> constantKeyValues = (Map<String, String>)exposedConstants.get(CARD_SCHEMES_KEY);
138
143
  if (constantKeyValues == null) return new HashMap<>();
139
144
  return constantKeyValues;
140
145
  }
141
146
 
142
- private void assertCorrectConversionWithSchemes(Fidel.CardScheme... schemes) {
143
- Integer[] schemeOrdinals = new Integer[schemes.length];
147
+ private void assertCorrectConversionWithSchemes(CardScheme... schemes) {
148
+ String[] schemeJsNames = new String[schemes.length];
144
149
  int schemeNumber = 0;
145
- for (Fidel.CardScheme scheme :
146
- schemes) {
147
- schemeOrdinals[schemeNumber] = scheme.ordinal();
150
+ for (CardScheme scheme : schemes) {
151
+ schemeJsNames[schemeNumber] = sut.jsValue(scheme);
148
152
  schemeNumber++;
149
153
  }
150
- ReadableArray arrayStub = JavaOnlyArray.of((Object[]) schemeOrdinals);
151
- Set<Fidel.CardScheme> result = sut.cardSchemesWithReadableArray(arrayStub);
154
+ ReadableArray arrayStub = JavaOnlyArray.of((Object[]) schemeJsNames);
155
+ Set<CardScheme> result = sut.cardSchemesWithReadableArray(arrayStub);
152
156
  assertEquals(EnumSet.copyOf(Arrays.asList(schemes)), result);
153
157
  }
154
158
  }
@@ -0,0 +1,70 @@
1
+ package com.fidelreactlibrary.adapters;
2
+
3
+ import static com.fidelreactlibrary.adapters.FidelCardVerificationChoiceAdapter.CARD_VERIFICATION_CHOICE;
4
+ import static com.fidelreactlibrary.adapters.FidelCardVerificationChoiceAdapter.CARD_VERIFICATION_DELEGATED_TO_THIRD_PARTY;
5
+ import static com.fidelreactlibrary.adapters.FidelCardVerificationChoiceAdapter.CARD_VERIFICATION_ON_THE_SPOT;
6
+
7
+ import static org.junit.Assert.assertEquals;
8
+ import static org.junit.Assert.assertTrue;
9
+
10
+ import com.facebook.react.bridge.JavaOnlyMap;
11
+ import com.facebook.react.bridge.ReadableMap;
12
+ import com.facebook.react.bridge.WritableNativeMap;
13
+ import com.fidelapi.entities.CardVerificationChoice;
14
+
15
+ import org.junit.Test;
16
+
17
+ import java.util.HashMap;
18
+ import java.util.Map;
19
+
20
+ public class FidelCardVerificationChoiceAdapterTest {
21
+
22
+ @Test
23
+ public void test_ShouldExposeConstantsWithCorrectKey() {
24
+ FidelCardVerificationChoiceAdapter sut = new FidelCardVerificationChoiceAdapter(null);
25
+
26
+ Map<String, Object> constants = sut.getConstants();
27
+
28
+ assertTrue(constants.containsKey(CARD_VERIFICATION_CHOICE));
29
+ }
30
+
31
+ @Test
32
+ public void test_ShouldExposeConstantsThatContainDelegatedToThirdParty() {
33
+ FidelCardVerificationChoiceAdapter sut = new FidelCardVerificationChoiceAdapter(null);
34
+
35
+ Map<String, Object> constants = sut.getConstants();
36
+
37
+ Map<String, String> verificationChoicesMap = (HashMap) constants.get(CARD_VERIFICATION_CHOICE);
38
+ assertEquals(CARD_VERIFICATION_DELEGATED_TO_THIRD_PARTY, verificationChoicesMap.get(CARD_VERIFICATION_DELEGATED_TO_THIRD_PARTY));
39
+ }
40
+
41
+ @Test
42
+ public void test_ShouldExposeConstantsThatContainOnTheSpot() {
43
+ FidelCardVerificationChoiceAdapter sut = new FidelCardVerificationChoiceAdapter(null);
44
+
45
+ Map<String, Object> constants = sut.getConstants();
46
+
47
+ Map<String, String> verificationChoicesMap = (HashMap) constants.get(CARD_VERIFICATION_CHOICE);
48
+ assertEquals(CARD_VERIFICATION_ON_THE_SPOT, verificationChoicesMap.get(CARD_VERIFICATION_ON_THE_SPOT));
49
+ }
50
+
51
+ @Test
52
+ public void test_ShouldAdaptOnTheSpotVerificationChoiceCorrectly() {
53
+ FidelCardVerificationChoiceAdapter sut = new FidelCardVerificationChoiceAdapter(JavaOnlyMap::new);
54
+
55
+ ReadableMap map = sut.adapt(CardVerificationChoice.ON_THE_SPOT);
56
+
57
+ assertEquals(CARD_VERIFICATION_ON_THE_SPOT, map.getString(CARD_VERIFICATION_CHOICE));
58
+ }
59
+
60
+ @Test
61
+ public void test_ShouldAdaptDelegatedToThirdPartyCorrectly() {
62
+ FidelCardVerificationChoiceAdapter sut = new FidelCardVerificationChoiceAdapter(JavaOnlyMap::new);
63
+
64
+ ReadableMap map = sut.adapt(CardVerificationChoice.DELEGATED_TO_THIRD_PARTY);
65
+
66
+ assertEquals(CARD_VERIFICATION_DELEGATED_TO_THIRD_PARTY, map.getString(CARD_VERIFICATION_CHOICE));
67
+ }
68
+
69
+
70
+ }
@@ -0,0 +1,157 @@
1
+ package com.fidelreactlibrary.adapters;
2
+
3
+ import com.facebook.react.bridge.JavaOnlyArray;
4
+ import com.facebook.react.bridge.ReadableArray;
5
+ import com.fidelapi.entities.Country;
6
+ import com.fidelreactlibrary.adapters.FidelCountryAdapter;
7
+ import com.fidelreactlibrary.fakes.ReadableArrayStub;
8
+
9
+ import org.junit.After;
10
+ import org.junit.Before;
11
+ import org.junit.Test;
12
+
13
+ import java.util.EnumSet;
14
+ import java.util.Map;
15
+ import java.util.Set;
16
+
17
+ import static org.junit.Assert.*;
18
+
19
+ public class FidelCountryAdapterTests {
20
+
21
+ private static final String COUNTRIES_KEY = "Country";
22
+
23
+ private FidelCountryAdapter sut;
24
+
25
+ @Before
26
+ public final void setUp() {
27
+ sut = new FidelCountryAdapter();
28
+ }
29
+
30
+ @After
31
+ public final void tearDown() {
32
+ sut = null;
33
+ }
34
+
35
+ @Test
36
+ public void test_ToExposeCountryConstants() {
37
+ Map<String, Object> exposedConstants = sut.getConstants();
38
+ assertTrue(exposedConstants.containsKey(COUNTRIES_KEY));
39
+ Map<String, String> countriesMap = (Map<String, String>)exposedConstants.get(COUNTRIES_KEY);
40
+ assertNotNull(countriesMap);
41
+ for (Country country : Country.values()) {
42
+ String countryKey = sut.jsCountryValue(country);
43
+ assertCorrectCountryValueFor(countryKey, country, countriesMap);
44
+ }
45
+ }
46
+
47
+ @Test
48
+ public void test_WhenAskedForAnyCountryJSValue_ItProvidesIt() {
49
+ for (Country country : Country.values()) {
50
+ assertNotNull(sut.jsCountryValue(country));
51
+ }
52
+ }
53
+
54
+ @Test
55
+ public void test_WhenAskedForCanadaCountryValue_ItProvidesTheCorrectOne() {
56
+ assertEquals("canada", sut.jsCountryValue(Country.CANADA));
57
+ }
58
+
59
+ @Test
60
+ public void test_WhenAskedForIrelandCountryValue_ItProvidesTheCorrectOne() {
61
+ assertEquals("ireland", sut.jsCountryValue(Country.IRELAND));
62
+ }
63
+
64
+ @Test
65
+ public void test_WhenAskedForJapanCountryValue_ItProvidesTheCorrectOne() {
66
+ assertEquals("japan", sut.jsCountryValue(Country.JAPAN));
67
+ }
68
+
69
+ @Test
70
+ public void test_WhenAskedForSwedenCountryValue_ItProvidesTheCorrectOne() {
71
+ assertEquals("sweden", sut.jsCountryValue(Country.SWEDEN));
72
+ }
73
+
74
+ @Test
75
+ public void test_WhenAskedForNorwayCountryValue_ItProvidesTheCorrectOne() {
76
+ assertEquals("norway", sut.jsCountryValue(Country.NORWAY));
77
+ }
78
+
79
+ @Test
80
+ public void test_WhenAskedForUnitedArabEmiratesCountryValue_ItProvidesTheCorrectOne() {
81
+ assertEquals("unitedArabEmirates", sut.jsCountryValue(Country.UNITED_ARAB_EMIRATES));
82
+ }
83
+
84
+ @Test
85
+ public void test_WhenAskedForUnitedKingdomCountryValue_ItProvidesTheCorrectOne() {
86
+ assertEquals("unitedKingdom", sut.jsCountryValue(Country.UNITED_KINGDOM));
87
+ }
88
+
89
+ @Test
90
+ public void test_WhenAskedForUnitedStatesCountryValue_ItProvidesTheCorrectOne() {
91
+ assertEquals("unitedStates", sut.jsCountryValue(Country.UNITED_STATES));
92
+ }
93
+
94
+ @Test
95
+ public void test_WhenCountryOrdinalNumberIsTooHigh_ReturnEmptyCountriesSet() {
96
+ String[] countriesArrayValues = new String[]{"something unrecognizable"};
97
+ ReadableArrayStub countriesArrayStub = new ReadableArrayStub(1, countriesArrayValues);
98
+ assertTrue(sut.parseAllowedCountries(countriesArrayStub).isEmpty());
99
+ }
100
+
101
+ @Test
102
+ public void test_WhenParsingNullReadableArray_ReturnEmptyCountriesSet() {
103
+ assertTrue(sut.parseAllowedCountries(null).isEmpty());
104
+ }
105
+
106
+ @Test
107
+ public void test_WhenParsingEmptyReadableArray_ReturnEmptyCountriesSet() {
108
+ assertTrue(sut.parseAllowedCountries(new ReadableArrayStub(0, new String[]{})).isEmpty());
109
+ }
110
+
111
+ @Test
112
+ public void test_WhenCountryJSValuesAreValid_ReturnCorrectCountriesSet() {
113
+ ReadableArray countriesArrayValues = JavaOnlyArray.of(
114
+ sut.jsCountryValue(Country.CANADA),
115
+ sut.jsCountryValue(Country.UNITED_ARAB_EMIRATES),
116
+ sut.jsCountryValue(Country.UNITED_KINGDOM),
117
+ sut.jsCountryValue(Country.SWEDEN),
118
+ sut.jsCountryValue(Country.UNITED_STATES),
119
+ sut.jsCountryValue(Country.IRELAND),
120
+ sut.jsCountryValue(Country.JAPAN),
121
+ sut.jsCountryValue(Country.NORWAY)
122
+ );
123
+
124
+ Set<Country> expectedCountries = EnumSet.of(Country.CANADA, Country.UNITED_ARAB_EMIRATES, Country.UNITED_KINGDOM,
125
+ Country.SWEDEN, Country.UNITED_STATES, Country.IRELAND, Country.JAPAN, Country.NORWAY);
126
+ Set<Country> adaptedCountries = sut.parseAllowedCountries(countriesArrayValues);
127
+
128
+ assertEquals(countriesArrayValues.size(), adaptedCountries.size());
129
+ assertEquals(adaptedCountries, expectedCountries);
130
+ }
131
+
132
+ @Test
133
+ public void test_WhenSomeCountryJSValuesAreInvalid_TheyShouldBeIgnored() {
134
+ ReadableArray countriesWithSomeInvalidValues = JavaOnlyArray.of(
135
+ sut.jsCountryValue(Country.CANADA),
136
+ "something unrecognizable",
137
+ sut.jsCountryValue(Country.UNITED_KINGDOM),
138
+ -1,
139
+ sut.jsCountryValue(Country.UNITED_STATES),
140
+ sut.jsCountryValue(Country.IRELAND),
141
+ sut.jsCountryValue(Country.JAPAN));
142
+
143
+ Set<Country> expectedCountries = EnumSet.of(Country.CANADA, Country.UNITED_KINGDOM,
144
+ Country.UNITED_STATES, Country.IRELAND, Country.JAPAN);
145
+ Set<Country> adaptedCountries = sut.parseAllowedCountries(countriesWithSomeInvalidValues);
146
+
147
+ assertEquals(adaptedCountries, expectedCountries);
148
+ }
149
+
150
+ private void assertCorrectCountryValueFor(String key,
151
+ Country countryValue,
152
+ Map<String, String> map) {
153
+ assertNotEquals(key, "notFound");
154
+ assertTrue(map.containsKey(key));
155
+ assertEquals(map.get(key), sut.jsCountryValue(countryValue));
156
+ }
157
+ }
@@ -0,0 +1,54 @@
1
+ package com.fidelreactlibrary.adapters;
2
+
3
+ import static org.junit.Assert.*;
4
+
5
+ import com.fidelapi.entities.ProgramType;
6
+ import com.fidelreactlibrary.adapters.FidelProgramTypeAdapter;
7
+
8
+ import org.junit.Test;
9
+
10
+ import java.util.HashMap;
11
+ import java.util.Map;
12
+
13
+ public class FidelProgramTypeAdapterTests {
14
+ private final FidelProgramTypeAdapter sut = new FidelProgramTypeAdapter();
15
+
16
+ @Test
17
+ public void test_ToExposeProgramTypeConstants() {
18
+ Map<String, Object> exposedConstants = sut.getConstants();
19
+ String expectedProgramTypesConstantsKey = "ProgramType";
20
+ assertTrue(exposedConstants.containsKey(expectedProgramTypesConstantsKey));
21
+
22
+ Map<String, String> programTypesMap = (HashMap<String, String>)exposedConstants.get(expectedProgramTypesConstantsKey);
23
+ assertNotNull(programTypesMap);
24
+
25
+ for (ProgramType programType : ProgramType.values()) {
26
+ String programTypeKey = sut.keyFor(programType);
27
+ assertNotEquals(programTypeKey, "notFound");
28
+ assertTrue(programTypesMap.containsKey(programTypeKey));
29
+ String programTypeValue = programTypesMap.get(programTypeKey);
30
+ assertNotNull(programTypeValue);
31
+ assertEquals(programTypeValue, programType.name());
32
+ }
33
+ }
34
+
35
+ @Test
36
+ public void test_WhenReceivingToParseProgramTypeWithNullValue_ShouldReturnTransactionSelectProgramType() {
37
+ assertEquals(ProgramType.TRANSACTION_SELECT, sut.parseProgramType(null));
38
+ }
39
+
40
+ @Test
41
+ public void test_WhenReceivingToParseProgramTypeWithUnknownValue_ShouldReturnTransactionSelectProgramType() {
42
+ assertEquals(ProgramType.TRANSACTION_SELECT, sut.parseProgramType("unknown program type value"));
43
+ }
44
+
45
+ @Test
46
+ public void test_WhenReceivingToParseProgramTypeWithTransactionSelectValue_ShouldReturnTransactionSelectProgramType() {
47
+ assertEquals(ProgramType.TRANSACTION_SELECT, sut.parseProgramType(ProgramType.TRANSACTION_SELECT.name()));
48
+ }
49
+
50
+ @Test
51
+ public void test_WhenReceivingToParseProgramTypeWithTransactionStreamValue_ShouldReturnTransactionStreamProgramType() {
52
+ assertEquals(ProgramType.TRANSACTION_STREAM, sut.parseProgramType(ProgramType.TRANSACTION_STREAM.name()));
53
+ }
54
+ }