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.
- package/CHANGELOG.md +10 -0
- package/README.md +54 -55
- package/android/build.gradle +11 -8
- package/android/src/main/java/com/fidelreactlibrary/FidelModule.java +52 -44
- package/android/src/main/java/com/fidelreactlibrary/FidelPackage.java +64 -49
- package/android/src/main/java/com/fidelreactlibrary/adapters/CardVerificationConfigurationProperties.java +22 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelCardSchemesAdapter.java +46 -29
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelCardVerificationChoiceAdapter.java +57 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelCountryAdapter.java +47 -19
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelProgramTypeAdapter.java +46 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelSetupAdapter.java +108 -6
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelSetupProperties.java +67 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelVerificationConfigurationAdapter.java +35 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/ImageFromReadableMapAdapter.java +5 -1
- package/android/src/main/java/com/fidelreactlibrary/adapters/ResultsAdapter.java +288 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/CardSchemesAdapter.java +6 -2
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/CardVerificationChoiceAdapter.java +11 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/CountryAdapter.java +14 -3
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/DataAdapter.java +5 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/ProgramTypeAdapter.java +11 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/VerificationConfigurationAdapter.java +9 -0
- package/android/src/main/java/com/fidelreactlibrary/events/BridgeLibraryEvent.java +17 -0
- package/android/src/main/java/com/fidelreactlibrary/events/BridgeLibraryEventEmitter.java +24 -0
- package/android/src/main/java/com/fidelreactlibrary/events/CardVerificationChoiceObserver.java +29 -0
- package/android/src/main/java/com/fidelreactlibrary/events/CardVerificationStartedObserver.java +31 -0
- package/android/src/main/java/com/fidelreactlibrary/events/ResultsObserver.java +72 -0
- package/android/src/test/java/com/fidelreactlibrary/FidelModuleTests.java +50 -31
- package/android/src/test/java/com/fidelreactlibrary/FidelPackageTests.java +0 -1
- package/android/src/test/java/com/fidelreactlibrary/{FidelCardSchemesAdapterTests.java → adapters/FidelCardSchemesAdapterTests.java} +51 -47
- package/android/src/test/java/com/fidelreactlibrary/adapters/FidelCardVerificationChoiceAdapterTest.java +70 -0
- package/android/src/test/java/com/fidelreactlibrary/adapters/FidelCountryAdapterTests.java +157 -0
- package/android/src/test/java/com/fidelreactlibrary/adapters/FidelProgramTypeAdapterTests.java +54 -0
- package/android/src/test/java/com/fidelreactlibrary/adapters/FidelSetupAdapterTests.java +900 -0
- package/android/src/test/java/com/fidelreactlibrary/adapters/FidelVerificationConfigurationAdapterTest.java +51 -0
- package/android/src/test/java/com/fidelreactlibrary/adapters/ResultsAdapterTests.java +74 -0
- package/android/src/test/java/com/fidelreactlibrary/{ErrorEventEmitterTests.java → events/BridgeLibraryEventEmitterTests.java} +18 -7
- package/android/src/test/java/com/fidelreactlibrary/events/BridgeLibraryEventTests.java +17 -0
- package/android/src/test/java/com/fidelreactlibrary/events/CardVerificationStartedObserverTests.java +49 -0
- package/android/src/test/java/com/fidelreactlibrary/events/ResultsObserverTests.java +38 -0
- package/android/src/test/java/com/fidelreactlibrary/fakes/CardSchemeAdapterStub.java +17 -6
- package/android/src/test/java/com/fidelreactlibrary/fakes/ConstantsProviderStub.java +2 -2
- package/android/src/test/java/com/fidelreactlibrary/fakes/CountryAdapterStub.java +25 -10
- package/android/src/test/java/com/fidelreactlibrary/fakes/{DataConverterStub.java → DataAdapterStub.java} +3 -3
- package/android/src/test/java/com/fidelreactlibrary/fakes/ProgramTypeAdapterStub.java +31 -0
- package/android/src/test/java/com/fidelreactlibrary/fakes/ReactContextMock.java +1 -1
- package/android/src/test/java/com/fidelreactlibrary/fakes/ReadableArrayStub.java +82 -0
- package/android/src/test/java/com/fidelreactlibrary/fakes/ReadableMapStub.java +175 -40
- package/android/src/test/java/com/fidelreactlibrary/fakes/VerificationConfigurationAdapterStub.java +13 -0
- package/fidel-react-native.podspec +1 -1
- package/index.js +71 -19
- package/ios/Adapters/CardSchemesAdapter.swift +13 -0
- package/ios/Adapters/ConsentDetailsAdapter.swift +19 -0
- package/ios/Adapters/EnrollmentResultAdapter.swift +28 -0
- package/ios/Adapters/ErrorResultAdapter.swift +71 -0
- package/ios/{FLRNImageAdapter.h → Adapters/FLRNImageFromRNAdapter.h} +2 -3
- package/ios/Adapters/FidelSetupAdapter.swift +89 -0
- package/ios/Adapters/FidelVerificationConfigurationAdapter.swift +19 -0
- package/ios/Adapters/VerificationResultAdapter.swift +17 -0
- package/ios/CardVerificationConfigurationProperties.swift +14 -0
- package/ios/Constants/CardSchemeConstants.swift +38 -0
- package/ios/Constants/CardVerificationChoiceConstants.swift +24 -0
- package/ios/Constants/CountryConstants.swift +47 -0
- package/ios/Constants/EnrollmentErrorTypeConstants.swift +25 -0
- package/ios/Constants/ErrorTypeConstants.swift +37 -0
- package/ios/Constants/ExportedConstantsProvider.swift +42 -0
- package/ios/Constants/ProgramTypeConstants.swift +30 -0
- package/ios/Constants/ResultTypeConstants.swift +35 -0
- package/ios/Constants/VerificationErrorTypeConstants.swift +29 -0
- package/ios/Events/BridgeLibraryEvent.swift +14 -0
- package/ios/Events/CardVerificationChoiceSelectedObserver.swift +23 -0
- package/ios/Events/CardVerificationStartedObserver.swift +21 -0
- package/ios/Events/EventObserver.swift +13 -0
- package/ios/Events/JSResultProperties.swift +15 -0
- package/ios/Events/JSResultTypes.swift +14 -0
- package/ios/Events/ResultsObserver.swift +37 -0
- package/ios/FidelSetupProperties.swift +33 -0
- package/ios/NativeFidelBridge.m +11 -0
- package/ios/NativeFidelBridge.swift +93 -0
- package/package.json +1 -4
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelOptionsAdapter.java +0 -121
- package/android/src/main/java/com/fidelreactlibrary/adapters/WritableMapDataConverter.java +0 -94
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/DataConverter.java +0 -5
- package/android/src/main/java/com/fidelreactlibrary/events/CallbackActivityEventListener.java +0 -64
- package/android/src/main/java/com/fidelreactlibrary/events/CallbackInput.java +0 -7
- package/android/src/main/java/com/fidelreactlibrary/events/ErrorEventEmitter.java +0 -22
- package/android/src/test/java/com/fidelreactlibrary/CallbackActivityEventListenerTests.java +0 -133
- package/android/src/test/java/com/fidelreactlibrary/FidelCountryAdapterTests.java +0 -74
- package/android/src/test/java/com/fidelreactlibrary/FidelOptionsAdapterTests.java +0 -414
- package/android/src/test/java/com/fidelreactlibrary/FidelSetupAdapterTests.java +0 -65
- package/android/src/test/java/com/fidelreactlibrary/WritableMapDataConverterTests.java +0 -186
- package/android/src/test/java/com/fidelreactlibrary/fakes/CallbackInputSpy.java +0 -12
- package/android/src/test/java/com/fidelreactlibrary/fakes/CallbackSpy.java +0 -18
- package/android/src/test/java/com/fidelreactlibrary/fakes/IntentMock.java +0 -20
- package/ios/FLRNCardSchemesAdapter.h +0 -16
- package/ios/FLRNCardSchemesFromJSAdapter.h +0 -14
- package/ios/FLRNCardSchemesFromJSAdapter.m +0 -39
- package/ios/FLRNConstantsProvider.h +0 -15
- package/ios/FLRNImageFromRNAdapter.h +0 -14
- package/ios/FLRNObjectToDictionaryAdapter.h +0 -15
- package/ios/FLRNOptionsAdapter.h +0 -24
- package/ios/FLRNOptionsAdapter.m +0 -133
- package/ios/FLRNRuntimeObjectToDictionaryAdapter.h +0 -14
- package/ios/FLRNRuntimeObjectToDictionaryAdapter.m +0 -36
- package/ios/FLRNSDKOptions.h +0 -24
- package/ios/FLRNSDKSetupOptions.h +0 -14
- package/ios/FLRNSetupAdapter.h +0 -17
- package/ios/FLRNSetupAdapter.m +0 -50
- package/ios/Fidel.h +0 -20
- package/ios/Fidel.m +0 -79
- package/ios/RCTConvert+CardScheme.h +0 -33
- package/ios/RCTConvert+Options.h +0 -52
- package/ios/RCTConvert+Options.m +0 -21
- /package/ios/{FLRNImageFromRNAdapter.m → Adapters/FLRNImageFromRNAdapter.m} +0 -0
|
@@ -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
|
|
32
|
-
private
|
|
33
|
-
private
|
|
34
|
-
private
|
|
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
|
-
|
|
48
|
+
testOnResultObserver,
|
|
49
|
+
testOnCardVerificationStartedObserver,
|
|
50
|
+
testOnCardVerificationChoiceSelectedObserver,
|
|
49
51
|
constantsProviderListStub,
|
|
50
|
-
|
|
52
|
+
new VerificationConfigurationAdapterStub()
|
|
53
|
+
);
|
|
51
54
|
}
|
|
52
|
-
|
|
55
|
+
|
|
53
56
|
@After
|
|
54
57
|
public final void tearDown() {
|
|
55
58
|
sut = null;
|
|
56
|
-
|
|
59
|
+
setupAdapterSpy = null;
|
|
57
60
|
constantsProviderListStub = null;
|
|
58
61
|
}
|
|
59
62
|
|
|
60
63
|
@Test
|
|
61
|
-
public void
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
}
|
|
@@ -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.
|
|
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
|
|
21
|
-
|
|
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
|
-
|
|
57
|
-
assertEquals(
|
|
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
|
-
|
|
63
|
-
assertEquals(
|
|
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
|
-
|
|
69
|
-
assertEquals(
|
|
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(
|
|
88
|
+
assertCorrectConversionWithSchemes(CardScheme.VISA);
|
|
76
89
|
}
|
|
77
90
|
|
|
78
91
|
@Test
|
|
79
92
|
public void test_WhenAdaptingArrayWithMastercard_ReturnSetWithMastercardCardScheme() {
|
|
80
|
-
assertCorrectConversionWithSchemes(
|
|
93
|
+
assertCorrectConversionWithSchemes(CardScheme.MASTERCARD);
|
|
81
94
|
}
|
|
82
95
|
|
|
83
96
|
@Test
|
|
84
97
|
public void test_WhenAdaptingArrayWithAmericanExpress_ReturnSetWithAmericanExpressCardScheme() {
|
|
85
|
-
assertCorrectConversionWithSchemes(
|
|
98
|
+
assertCorrectConversionWithSchemes(CardScheme.AMERICAN_EXPRESS);
|
|
86
99
|
}
|
|
87
100
|
|
|
88
101
|
@Test
|
|
89
102
|
public void test_WhenAdaptingArrayWith2Schemes_ReturnSetWith2Schemes() {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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<
|
|
122
|
+
Set<CardScheme> result = sut.cardSchemesWithReadableArray(new JavaOnlyArray());
|
|
110
123
|
assertEquals(0, result.size());
|
|
111
124
|
}
|
|
112
125
|
|
|
113
126
|
@Test
|
|
114
|
-
public void
|
|
115
|
-
|
|
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)
|
|
121
|
-
ReadableArray invalidDoubleValues = JavaOnlyArray.of(invalidValue,
|
|
122
|
-
Set<
|
|
123
|
-
assertEquals(EnumSet.of(
|
|
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 @
|
|
140
|
+
private @NonNull Map<String, String> getConstantKeyValues() {
|
|
136
141
|
Map<String, Object> exposedConstants = sut.getConstants();
|
|
137
|
-
Map<String,
|
|
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(
|
|
143
|
-
|
|
147
|
+
private void assertCorrectConversionWithSchemes(CardScheme... schemes) {
|
|
148
|
+
String[] schemeJsNames = new String[schemes.length];
|
|
144
149
|
int schemeNumber = 0;
|
|
145
|
-
for (
|
|
146
|
-
|
|
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[])
|
|
151
|
-
Set<
|
|
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
|
+
}
|
package/android/src/test/java/com/fidelreactlibrary/adapters/FidelProgramTypeAdapterTests.java
ADDED
|
@@ -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
|
+
}
|