From 820485b9a0e39094309493165879f7a589054edd Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Wed, 10 Jul 2019 16:38:25 +0300 Subject: [PATCH 1/7] HW-54226. Extracted transfer method repository --- settings.gradle | 2 +- transfermethodrepository/.gitignore | 1 + transfermethodrepository/build.gradle | 9 +++ .../config/jacoco-settings.gradle | 78 +++++++++++++++++++ transfermethodrepository/config/lint.xml | 6 ++ transfermethodrepository/proguard-rules.pro | 21 +++++ .../src/main/AndroidManifest.xml | 2 + .../repository/TransferMethodRepository.java | 2 +- .../TransferMethodRepositoryImpl.java | 2 +- .../src/main/res/values/strings.xml | 3 + .../TransferMethodRepositoryImplTest.java | 2 +- ui/build.gradle | 1 + .../ui/repository/RepositoryFactory.java | 3 + .../AddTransferMethodPresenter.java | 2 +- .../ListTransferMethodPresenter.java | 2 +- 15 files changed, 130 insertions(+), 6 deletions(-) create mode 100644 transfermethodrepository/.gitignore create mode 100644 transfermethodrepository/build.gradle create mode 100644 transfermethodrepository/config/jacoco-settings.gradle create mode 100644 transfermethodrepository/config/lint.xml create mode 100644 transfermethodrepository/proguard-rules.pro create mode 100644 transfermethodrepository/src/main/AndroidManifest.xml rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod}/repository/TransferMethodRepository.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod}/repository/TransferMethodRepositoryImpl.java (99%) create mode 100644 transfermethodrepository/src/main/res/values/strings.xml rename {ui/src/test/java/com/hyperwallet/android/ui => transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod}/repository/TransferMethodRepositoryImplTest.java (99%) diff --git a/settings.gradle b/settings.gradle index f0129ca86..abf56cf21 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,2 @@ -include ':ui', ':common', ':receipt' +include ':ui', ':common', ':receipt', ':transfermethodrepository' //add libraries here diff --git a/transfermethodrepository/.gitignore b/transfermethodrepository/.gitignore new file mode 100644 index 000000000..796b96d1c --- /dev/null +++ b/transfermethodrepository/.gitignore @@ -0,0 +1 @@ +/build diff --git a/transfermethodrepository/build.gradle b/transfermethodrepository/build.gradle new file mode 100644 index 000000000..270ee6849 --- /dev/null +++ b/transfermethodrepository/build.gradle @@ -0,0 +1,9 @@ +apply from: "$rootProject.projectDir/android-library.gradle" + +dependencies { + implementation project(":common") + + androidTestImplementation "androidx.test:rules:$testRulesVersion" + testImplementation "org.robolectric:robolectric:$robolectricVersion" + testImplementation "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion" +} \ No newline at end of file diff --git a/transfermethodrepository/config/jacoco-settings.gradle b/transfermethodrepository/config/jacoco-settings.gradle new file mode 100644 index 000000000..f1b0a7c45 --- /dev/null +++ b/transfermethodrepository/config/jacoco-settings.gradle @@ -0,0 +1,78 @@ +apply plugin: 'jacoco' + +final def jacocoVersion = "0.8.2" + +jacoco { + toolVersion = jacocoVersion +} + +android { + testOptions { + unitTests { + includeAndroidResources = true + returnDefaultValues = true + } + unitTests.all { + jacoco { + includeNoLocationClasses = true + } + } + } +} + +def fileFilter = ['**/BuildConfig.*'] + +def debugClassPaths = [ + '**/intermediates/javac/debug/*/classes/**' +] + +final def coverageSourceDirs = ["$project.projectDir/src/main/java/*"] + +task jacocoTestReport(type: JacocoReport, dependsOn: 'testDebugUnitTest') { + + group = 'Reporting' + description = 'Generate Jacoco coverage reports.' + reports { + html { + enabled = true + destination file("$project.buildDir/reports/jacoco") + } + } + + classDirectories = fileTree( + dir: "${buildDir}", + includes: debugClassPaths, + excludes: fileFilter + ) + + additionalSourceDirs = files(coverageSourceDirs) + sourceDirectories = files(coverageSourceDirs) + executionData = files("${project.buildDir}/jacoco/testDebugUnitTest.exec") +} + +task jacocoTestCoverageVerification(type: JacocoCoverageVerification, dependsOn: 'jacocoTestReport') { + + group = 'Verification' + classDirectories = fileTree( + dir: "${buildDir}", + includes: debugClassPaths, + excludes: fileFilter + ) + additionalSourceDirs = files(coverageSourceDirs) + sourceDirectories = files(coverageSourceDirs) + executionData = files("${project.buildDir}/jacoco/testDebugUnitTest.exec") + + violationRules { + setFailOnViolation(true) + + rule { + element = 'CLASS' + limit { + value = 'COVEREDRATIO' + counter = 'BRANCH' + minimum = 0.65 + } + } + } +} + diff --git a/transfermethodrepository/config/lint.xml b/transfermethodrepository/config/lint.xml new file mode 100644 index 000000000..9242eccb2 --- /dev/null +++ b/transfermethodrepository/config/lint.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/transfermethodrepository/proguard-rules.pro b/transfermethodrepository/proguard-rules.pro new file mode 100644 index 000000000..f1b424510 --- /dev/null +++ b/transfermethodrepository/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/transfermethodrepository/src/main/AndroidManifest.xml b/transfermethodrepository/src/main/AndroidManifest.xml new file mode 100644 index 000000000..dfdab902d --- /dev/null +++ b/transfermethodrepository/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepository.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepository.java similarity index 98% rename from ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepository.java rename to transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepository.java index 37baebfc9..dce02d886 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepository.java +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepository.java @@ -14,7 +14,7 @@ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.transfermethod.repository; import androidx.annotation.NonNull; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImpl.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryImpl.java similarity index 99% rename from ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImpl.java rename to transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryImpl.java index 17aab2028..69f450ec2 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImpl.java +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryImpl.java @@ -14,7 +14,7 @@ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.transfermethod.repository; import static com.hyperwallet.android.model.HyperwalletStatusTransition.StatusDefinition.ACTIVATED; import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodFields.TOKEN; diff --git a/transfermethodrepository/src/main/res/values/strings.xml b/transfermethodrepository/src/main/res/values/strings.xml new file mode 100644 index 000000000..b9c154de4 --- /dev/null +++ b/transfermethodrepository/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + transfermethodrepository + diff --git a/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImplTest.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryImplTest.java similarity index 99% rename from ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImplTest.java rename to transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryImplTest.java index 59c3d3ee9..0e7b396c0 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImplTest.java +++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryImplTest.java @@ -1,4 +1,4 @@ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.transfermethod.repository; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; diff --git a/ui/build.gradle b/ui/build.gradle index a7edbb7a1..9f4684a26 100644 --- a/ui/build.gradle +++ b/ui/build.gradle @@ -11,6 +11,7 @@ dependencies { implementation project(":common") implementation project(":receipt") + implementation project(":transfermethodrepository") androidTestImplementation "androidx.test:rules:$testRulesVersion" androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion" diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java b/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java index 8ae21ee6d..64cdd0f8a 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java @@ -27,6 +27,9 @@ package com.hyperwallet.android.ui.repository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryImpl; + public class RepositoryFactory { private static RepositoryFactory sInstance; private TransferMethodConfigurationRepository mTransferMethodConfigurationRepository; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java index d0fd40750..3dc580382 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java @@ -22,7 +22,7 @@ import com.hyperwallet.android.model.graphql.HyperwalletTransferMethodConfigurationField; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; import com.hyperwallet.android.ui.repository.TransferMethodConfigurationRepository; -import com.hyperwallet.android.ui.repository.TransferMethodRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; public class AddTransferMethodPresenter implements AddTransferMethodContract.Presenter { diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenter.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenter.java index 4ad64b5d1..1a84893b3 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenter.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenter.java @@ -21,7 +21,7 @@ import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.HyperwalletStatusTransition; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; -import com.hyperwallet.android.ui.repository.TransferMethodRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; import java.util.List; From 9efb49cd744d1d5f93cb6348d58a22a300a21054 Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Wed, 10 Jul 2019 16:46:36 +0300 Subject: [PATCH 2/7] HW-54226. Updated tests --- .../android/ui/repository/RepositoryFactoryTest.java | 2 ++ .../ui/transfermethod/AddTransferMethodPresenterTest.java | 2 +- .../ui/transfermethod/ListTransferMethodPresenterTest.java | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java b/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java index 050534fc8..ca4ed8ee6 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java +++ b/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java @@ -5,6 +5,8 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.notNullValue; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; + import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; diff --git a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenterTest.java b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenterTest.java index 399c188bb..f76922634 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenterTest.java +++ b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenterTest.java @@ -25,8 +25,8 @@ import com.hyperwallet.android.model.transfermethod.HyperwalletBankAccount; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; import com.hyperwallet.android.ui.repository.TransferMethodConfigurationRepository; -import com.hyperwallet.android.ui.repository.TransferMethodRepository; import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; import org.json.JSONObject; import org.junit.Before; diff --git a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenterTest.java b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenterTest.java index b1d95f838..7db248566 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenterTest.java +++ b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenterTest.java @@ -38,7 +38,7 @@ import com.hyperwallet.android.model.HyperwalletStatusTransition; import com.hyperwallet.android.model.transfermethod.HyperwalletBankAccount; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; -import com.hyperwallet.android.ui.repository.TransferMethodRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; import org.junit.Before; import org.junit.Rule; From 12bf6e811af89cc2269993b49a9499accf6244bd Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Wed, 17 Jul 2019 14:56:04 +0300 Subject: [PATCH 3/7] HW-54226. Added publish task --- transfermethodrepository/build.gradle | 91 +++++++++++++++++++ .../src/main/res/values/strings.xml | 3 - 2 files changed, 91 insertions(+), 3 deletions(-) delete mode 100644 transfermethodrepository/src/main/res/values/strings.xml diff --git a/transfermethodrepository/build.gradle b/transfermethodrepository/build.gradle index 270ee6849..b04d42faf 100644 --- a/transfermethodrepository/build.gradle +++ b/transfermethodrepository/build.gradle @@ -6,4 +6,95 @@ dependencies { androidTestImplementation "androidx.test:rules:$testRulesVersion" testImplementation "org.robolectric:robolectric:$robolectricVersion" testImplementation "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion" +} + + +def aarFile = file("$buildDir/outputs/aar/userrepository-$version" + ".aar") +def aarArtifact = artifacts.add('archives', aarFile) { + type 'aar' +} + +def isReleaseVersion = !version.endsWith('SNAPSHOT') + +publishing { + + repositories { + maven { + def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2" + def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots" + url = isReleaseVersion ? releasesRepoUrl : snapshotsRepoUrl + credentials { + username sonatypeUsername + password sonatypePassword + } + } + } + + publications { + hyperwalletReceiptUi(MavenPublication) { + groupId = hyperwalletGroupId + artifactId = 'transfermethodrepository' + version = version + + artifact(sourcesJar) + artifact(javadocsJar) + artifact(aarArtifact) + + pom { + name = 'Hyperwallet Android Receipt UI SDK' + description = 'Hyperwallet Receipt UI SDK for Android to integrate with Hyperwallet Platform' + url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' + pom.withXml { + def dependenciesNode = asNode().appendNode('dependencies') + configurations.implementation.allDependencies.each { + def dependencyNode = dependenciesNode.appendNode('dependency') + if (it.group == "hyperwallet-android-ui-sdk") { + dependencyNode.appendNode('groupId', "com.hyperwallet.android.ui") + } else { + dependencyNode.appendNode('groupId', it.group) + } + dependencyNode.appendNode('artifactId', it.name) + dependencyNode.appendNode('version', it.version) + } + } + licenses { + license { + name = 'MIT License' + url = 'http://www.opensource.org/licenses/MIT' + } + } + developers { + developer { + id = 'devs' + name = 'Hyperwallet Developers' + } + } + scm { + connection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' + developerConnection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' + url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' + } + } + } + } +} + +tasks.withType(Sign) { + onlyIf { + isReleaseVersion && sonatypeUsername?.trim() && sonatypePassword?.trim() + } +} + +signing { + sign publishing.publications.hyperwalletReceiptUi +} + +sonarqube { + properties { + def libraries = project.android.sdkDirectory.getPath() + "/platforms/android-28/android.jar" + property "sonar.sources", "src/main/java" + property "sonar.binaries", "build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/hyperwallet/android/ui" + property "sonar.libraries", libraries + property "sonar.projectName", "android-ui-sdk-transfermethodrepository" + } } \ No newline at end of file diff --git a/transfermethodrepository/src/main/res/values/strings.xml b/transfermethodrepository/src/main/res/values/strings.xml deleted file mode 100644 index b9c154de4..000000000 --- a/transfermethodrepository/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - transfermethodrepository - From 9b7404d55e90964bfe9bcbba0d940e94e1884a00 Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Thu, 18 Jul 2019 16:42:20 +0300 Subject: [PATCH 4/7] HW-54226. Added factory --- transfermethodrepository/build.gradle | 94 +------------------ .../TransferMethodRepositoryFactory.java | 25 +++++ .../TransferMethodRepositoryFactoryTest.java | 34 +++++++ .../AddTransferMethodFragment.java | 4 +- .../ListTransferMethodFragment.java | 4 +- 5 files changed, 65 insertions(+), 96 deletions(-) create mode 100644 transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java create mode 100644 transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactoryTest.java diff --git a/transfermethodrepository/build.gradle b/transfermethodrepository/build.gradle index b04d42faf..fcf28601b 100644 --- a/transfermethodrepository/build.gradle +++ b/transfermethodrepository/build.gradle @@ -1,100 +1,8 @@ apply from: "$rootProject.projectDir/android-library.gradle" +apply from: "$rootProject.projectDir/publish.gradle" dependencies { - implementation project(":common") - androidTestImplementation "androidx.test:rules:$testRulesVersion" testImplementation "org.robolectric:robolectric:$robolectricVersion" testImplementation "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion" -} - - -def aarFile = file("$buildDir/outputs/aar/userrepository-$version" + ".aar") -def aarArtifact = artifacts.add('archives', aarFile) { - type 'aar' -} - -def isReleaseVersion = !version.endsWith('SNAPSHOT') - -publishing { - - repositories { - maven { - def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2" - def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots" - url = isReleaseVersion ? releasesRepoUrl : snapshotsRepoUrl - credentials { - username sonatypeUsername - password sonatypePassword - } - } - } - - publications { - hyperwalletReceiptUi(MavenPublication) { - groupId = hyperwalletGroupId - artifactId = 'transfermethodrepository' - version = version - - artifact(sourcesJar) - artifact(javadocsJar) - artifact(aarArtifact) - - pom { - name = 'Hyperwallet Android Receipt UI SDK' - description = 'Hyperwallet Receipt UI SDK for Android to integrate with Hyperwallet Platform' - url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' - pom.withXml { - def dependenciesNode = asNode().appendNode('dependencies') - configurations.implementation.allDependencies.each { - def dependencyNode = dependenciesNode.appendNode('dependency') - if (it.group == "hyperwallet-android-ui-sdk") { - dependencyNode.appendNode('groupId', "com.hyperwallet.android.ui") - } else { - dependencyNode.appendNode('groupId', it.group) - } - dependencyNode.appendNode('artifactId', it.name) - dependencyNode.appendNode('version', it.version) - } - } - licenses { - license { - name = 'MIT License' - url = 'http://www.opensource.org/licenses/MIT' - } - } - developers { - developer { - id = 'devs' - name = 'Hyperwallet Developers' - } - } - scm { - connection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' - developerConnection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' - url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' - } - } - } - } -} - -tasks.withType(Sign) { - onlyIf { - isReleaseVersion && sonatypeUsername?.trim() && sonatypePassword?.trim() - } -} - -signing { - sign publishing.publications.hyperwalletReceiptUi -} - -sonarqube { - properties { - def libraries = project.android.sdkDirectory.getPath() + "/platforms/android-28/android.jar" - property "sonar.sources", "src/main/java" - property "sonar.binaries", "build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/hyperwallet/android/ui" - property "sonar.libraries", libraries - property "sonar.projectName", "android-ui-sdk-transfermethodrepository" - } } \ No newline at end of file diff --git a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java new file mode 100644 index 000000000..3b276746f --- /dev/null +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java @@ -0,0 +1,25 @@ +package com.hyperwallet.android.ui.transfermethod.repository; + +public class TransferMethodRepositoryFactory { + private static TransferMethodRepositoryFactory sInstance; + private TransferMethodRepository mTransferMethodRepository; + + private TransferMethodRepositoryFactory() { + mTransferMethodRepository = new TransferMethodRepositoryImpl(); + } + + public static synchronized TransferMethodRepositoryFactory getInstance() { + if (sInstance == null) { + sInstance = new TransferMethodRepositoryFactory(); + } + return sInstance; + } + + public static void clearInstance() { + sInstance = null; + } + + public TransferMethodRepository getTransferMethodRepository() { + return mTransferMethodRepository; + } +} diff --git a/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactoryTest.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactoryTest.java new file mode 100644 index 000000000..99a4692dc --- /dev/null +++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactoryTest.java @@ -0,0 +1,34 @@ +package com.hyperwallet.android.ui.transfermethod.repository; + + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.hamcrest.MatcherAssert.assertThat; + +import org.junit.Test; + +public class TransferMethodRepositoryFactoryTest { + @Test + public void testGetInstance_verifyRepositoryInitialized() { + TransferMethodRepositoryFactory repositoryFactory = TransferMethodRepositoryFactory.getInstance(); + assertThat(repositoryFactory, is(notNullValue())); + assertThat(repositoryFactory.getTransferMethodRepository(), is(notNullValue())); + } + + @Test + public void testClearInstance_verifyRepositoryCleared() { + TransferMethodRepositoryFactory repositoryFactory = TransferMethodRepositoryFactory.getInstance(); + + TransferMethodRepository transferMethodRepository = repositoryFactory.getTransferMethodRepository(); + TransferMethodRepositoryFactory currentRepositoryFactory = TransferMethodRepositoryFactory.getInstance(); + assertThat(repositoryFactory, is(currentRepositoryFactory)); + assertThat(transferMethodRepository, is(currentRepositoryFactory.getTransferMethodRepository())); + + TransferMethodRepositoryFactory.clearInstance(); + + TransferMethodRepositoryFactory anotherRepositoryFactory = TransferMethodRepositoryFactory.getInstance(); + assertThat(repositoryFactory, is(not(anotherRepositoryFactory))); + assertThat(transferMethodRepository, is(not(anotherRepositoryFactory.getTransferMethodRepository()))); + } +} \ No newline at end of file diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java index 447624e31..5d9904245 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java @@ -58,6 +58,7 @@ import com.hyperwallet.android.ui.HyperwalletLocalBroadcast; import com.hyperwallet.android.ui.R; import com.hyperwallet.android.ui.repository.RepositoryFactory; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; import com.hyperwallet.android.ui.view.WidgetDateDialogFragment; import com.hyperwallet.android.ui.view.WidgetSelectionDialogFragment; import com.hyperwallet.android.ui.view.widget.AbstractWidget; @@ -202,10 +203,11 @@ public void onClick(View v) { public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); + TransferMethodRepositoryFactory transferMethodRepositoryFactory = TransferMethodRepositoryFactory.getInstance(); RepositoryFactory factory = RepositoryFactory.getInstance(); mPresenter = new AddTransferMethodPresenter(this, factory.getTransferMethodConfigurationRepository(), - factory.getTransferMethodRepository()); + transferMethodRepositoryFactory.getTransferMethodRepository()); } @Override diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodFragment.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodFragment.java index e38385540..306776f4d 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodFragment.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodFragment.java @@ -50,7 +50,7 @@ import com.hyperwallet.android.ui.R; import com.hyperwallet.android.ui.common.view.HorizontalDividerItemDecorator; import com.hyperwallet.android.ui.common.view.OneClickListener; -import com.hyperwallet.android.ui.repository.RepositoryFactory; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; import java.util.ArrayList; import java.util.List; @@ -179,7 +179,7 @@ public void onOneClick(View v) { @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - RepositoryFactory factory = RepositoryFactory.getInstance(); + TransferMethodRepositoryFactory factory = TransferMethodRepositoryFactory.getInstance(); mPresenter = new ListTransferMethodPresenter(factory.getTransferMethodRepository(), this); } From c4347aa6c64c07f78b12d8282e37433d6fac1ea5 Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Thu, 18 Jul 2019 19:15:08 +0300 Subject: [PATCH 5/7] HW-54226. Moved transfer method configuration repository --- ...TransferMethodConfigurationRepository.java | 2 +- ...sferMethodConfigurationRepositoryImpl.java | 6 +- .../TransferMethodRepositoryFactory.java | 6 ++ .../util/EspressoIdlingResource.java | 24 ++++++ .../repository/FieldMapKeyTest.java | 4 +- ...MethodConfigurationRepositoryImplTest.java | 4 +- .../TransferMethodRepositoryFactoryTest.java | 9 ++- .../HyperwalletExternalResourceManager.java | 74 +++++++++++++++++++ .../resources/error_tmc_keys_response.json | 0 ...sful_tmc_fields_bank_account_response.json | 0 .../successful_tmc_keys_response.json | 0 .../ui/repository/RepositoryFactory.java | 2 + .../AddTransferMethodFragment.java | 5 +- .../AddTransferMethodPresenter.java | 2 +- .../SelectTransferMethodPresenter.java | 2 +- .../ui/repository/RepositoryFactoryTest.java | 1 + .../AddTransferMethodPresenterTest.java | 2 +- .../SelectTransferMethodPresenterTest.java | 4 +- 18 files changed, 130 insertions(+), 17 deletions(-) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod}/repository/TransferMethodConfigurationRepository.java (97%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod}/repository/TransferMethodConfigurationRepositoryImpl.java (97%) create mode 100644 transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/util/EspressoIdlingResource.java rename {ui/src/test/java/com/hyperwallet/android/ui => transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod}/repository/FieldMapKeyTest.java (89%) rename {ui/src/test/java/com/hyperwallet/android/ui => transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod}/repository/TransferMethodConfigurationRepositoryImplTest.java (98%) create mode 100644 transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/rule/HyperwalletExternalResourceManager.java rename {ui => transfermethodrepository}/src/test/resources/error_tmc_keys_response.json (100%) rename {ui => transfermethodrepository}/src/test/resources/successful_tmc_fields_bank_account_response.json (100%) rename {ui => transfermethodrepository}/src/test/resources/successful_tmc_keys_response.json (100%) diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepository.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepository.java similarity index 97% rename from ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepository.java rename to transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepository.java index 08c9694e3..31389ee50 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepository.java +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepository.java @@ -24,7 +24,7 @@ * USE OR OTHER DEALINGS * IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.transfermethod.repository; import androidx.annotation.NonNull; import androidx.annotation.Nullable; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepositoryImpl.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java similarity index 97% rename from ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepositoryImpl.java rename to transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java index b8384793f..1799ba8d7 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepositoryImpl.java +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java @@ -24,7 +24,7 @@ * USE OR OTHER DEALINGS * IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.transfermethod.repository; import android.os.Handler; @@ -39,7 +39,7 @@ import com.hyperwallet.android.model.graphql.HyperwalletTransferMethodConfigurationKey; import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationFieldQuery; import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationKeysQuery; -import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; +import com.hyperwallet.android.ui.transfermethod.repository.util.EspressoIdlingResource; import java.util.HashMap; import java.util.Map; @@ -50,7 +50,7 @@ public class TransferMethodConfigurationRepositoryImpl implements TransferMethod private final Map mFieldMap; private HyperwalletTransferMethodConfigurationKey mTransferMethodConfigurationKey; - TransferMethodConfigurationRepositoryImpl() { + public TransferMethodConfigurationRepositoryImpl() { mHandler = new Handler(); mFieldMap = new HashMap<>(); } diff --git a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java index 3b276746f..5cada16b2 100644 --- a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java @@ -3,9 +3,11 @@ public class TransferMethodRepositoryFactory { private static TransferMethodRepositoryFactory sInstance; private TransferMethodRepository mTransferMethodRepository; + private TransferMethodConfigurationRepository mTransferMethodConfigurationRepository; private TransferMethodRepositoryFactory() { mTransferMethodRepository = new TransferMethodRepositoryImpl(); + mTransferMethodConfigurationRepository = new TransferMethodConfigurationRepositoryImpl(); } public static synchronized TransferMethodRepositoryFactory getInstance() { @@ -22,4 +24,8 @@ public static void clearInstance() { public TransferMethodRepository getTransferMethodRepository() { return mTransferMethodRepository; } + + public TransferMethodConfigurationRepository getTransferMethodConfigurationRepository() { + return mTransferMethodConfigurationRepository; + } } diff --git a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/util/EspressoIdlingResource.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/util/EspressoIdlingResource.java new file mode 100644 index 000000000..75dacbae7 --- /dev/null +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/util/EspressoIdlingResource.java @@ -0,0 +1,24 @@ +package com.hyperwallet.android.ui.transfermethod.repository.util; + +import androidx.test.espresso.IdlingResource; +import androidx.test.espresso.idling.CountingIdlingResource; + +public class EspressoIdlingResource { + + private static final String RESOURCE = "GLOBAL"; + + private static CountingIdlingResource mCountingIdlingResource = + new CountingIdlingResource(RESOURCE); + + public static void increment() { + mCountingIdlingResource.increment(); + } + + public static void decrement() { + mCountingIdlingResource.decrement(); + } + + public static IdlingResource getIdlingResource() { + return mCountingIdlingResource; + } +} diff --git a/ui/src/test/java/com/hyperwallet/android/ui/repository/FieldMapKeyTest.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/FieldMapKeyTest.java similarity index 89% rename from ui/src/test/java/com/hyperwallet/android/ui/repository/FieldMapKeyTest.java rename to transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/FieldMapKeyTest.java index 297575fa0..1c0f53d8d 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/repository/FieldMapKeyTest.java +++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/FieldMapKeyTest.java @@ -1,8 +1,10 @@ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.transfermethod.repository; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; +import com.hyperwallet.android.ui.transfermethod.repository.FieldMapKey; + import org.junit.Test; public class FieldMapKeyTest { diff --git a/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepositoryImplTest.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImplTest.java similarity index 98% rename from ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepositoryImplTest.java rename to transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImplTest.java index 7bcc36886..77d19b782 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepositoryImplTest.java +++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImplTest.java @@ -1,4 +1,4 @@ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.transfermethod.repository; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; @@ -32,7 +32,7 @@ import com.hyperwallet.android.model.graphql.keyed.HyperwalletTransferMethodConfigurationKeyResult; import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationFieldQuery; import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationKeysQuery; -import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.transfermethod.repository.rule.HyperwalletExternalResourceManager; import com.hyperwallet.android.util.JsonUtils; import org.hamcrest.collection.IsEmptyCollection; diff --git a/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactoryTest.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactoryTest.java index 99a4692dc..7e89c5a03 100644 --- a/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactoryTest.java +++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactoryTest.java @@ -1,6 +1,5 @@ package com.hyperwallet.android.ui.transfermethod.repository; - import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.CoreMatchers.notNullValue; @@ -10,10 +9,11 @@ public class TransferMethodRepositoryFactoryTest { @Test - public void testGetInstance_verifyRepositoryInitialized() { + public void testGetInstance_verifyRepositoriesInitialized() { TransferMethodRepositoryFactory repositoryFactory = TransferMethodRepositoryFactory.getInstance(); assertThat(repositoryFactory, is(notNullValue())); assertThat(repositoryFactory.getTransferMethodRepository(), is(notNullValue())); + assertThat(repositoryFactory.getTransferMethodConfigurationRepository(), is(notNullValue())); } @Test @@ -21,14 +21,19 @@ public void testClearInstance_verifyRepositoryCleared() { TransferMethodRepositoryFactory repositoryFactory = TransferMethodRepositoryFactory.getInstance(); TransferMethodRepository transferMethodRepository = repositoryFactory.getTransferMethodRepository(); + TransferMethodConfigurationRepository configurationRepository = + repositoryFactory.getTransferMethodConfigurationRepository(); TransferMethodRepositoryFactory currentRepositoryFactory = TransferMethodRepositoryFactory.getInstance(); assertThat(repositoryFactory, is(currentRepositoryFactory)); assertThat(transferMethodRepository, is(currentRepositoryFactory.getTransferMethodRepository())); + assertThat(configurationRepository, is(currentRepositoryFactory.getTransferMethodConfigurationRepository())); TransferMethodRepositoryFactory.clearInstance(); TransferMethodRepositoryFactory anotherRepositoryFactory = TransferMethodRepositoryFactory.getInstance(); assertThat(repositoryFactory, is(not(anotherRepositoryFactory))); assertThat(transferMethodRepository, is(not(anotherRepositoryFactory.getTransferMethodRepository()))); + assertThat(configurationRepository, + is(not(anotherRepositoryFactory.getTransferMethodConfigurationRepository()))); } } \ No newline at end of file diff --git a/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/rule/HyperwalletExternalResourceManager.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/rule/HyperwalletExternalResourceManager.java new file mode 100644 index 000000000..423bf796e --- /dev/null +++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/rule/HyperwalletExternalResourceManager.java @@ -0,0 +1,74 @@ +package com.hyperwallet.android.ui.transfermethod.repository.rule; + +import org.junit.rules.TestWatcher; +import org.junit.runner.Description; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.StringWriter; +import java.io.Writer; +import java.net.URL; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class HyperwalletExternalResourceManager extends TestWatcher { + + private static final String EMPTY = ""; + private ClassLoader classLoader; + private Logger logger; + + @Override + protected void starting(Description description) { + super.starting(description); + classLoader = description.getTestClass().getClassLoader(); + logger = Logger.getLogger(description.getTestClass().getName()); + } + + + public String getResourceContent(final String resourceName) { + if (resourceName == null) { + throw new IllegalArgumentException("Parameter resourceName cannot be null"); + } + + return getContent(resourceName); + } + + private String getContent(final String resourceName) { + + URL resource = classLoader.getResource(resourceName); + InputStream inputStream = null; + Writer writer = new StringWriter(); + String resourceContent = EMPTY; + if (resource != null) { + try { + inputStream = resource.openStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); + String line = reader.readLine(); + while (line != null) { + writer.write(line); + line = reader.readLine(); + } + resourceContent = writer.toString(); + + } catch (Exception e) { + logger.log(Level.WARNING, "There was an error loading an external resource", e); + } finally { + try { + if (inputStream != null) { + inputStream.close(); + } + } catch (Exception e) { + logger.log(Level.SEVERE, "There was an error closing input stream", e); + } + try { + writer.close(); + } catch (IOException e) { + logger.log(Level.SEVERE, "There was an error closing writer", e); + } + } + } + return resourceContent; + } +} diff --git a/ui/src/test/resources/error_tmc_keys_response.json b/transfermethodrepository/src/test/resources/error_tmc_keys_response.json similarity index 100% rename from ui/src/test/resources/error_tmc_keys_response.json rename to transfermethodrepository/src/test/resources/error_tmc_keys_response.json diff --git a/ui/src/test/resources/successful_tmc_fields_bank_account_response.json b/transfermethodrepository/src/test/resources/successful_tmc_fields_bank_account_response.json similarity index 100% rename from ui/src/test/resources/successful_tmc_fields_bank_account_response.json rename to transfermethodrepository/src/test/resources/successful_tmc_fields_bank_account_response.json diff --git a/ui/src/test/resources/successful_tmc_keys_response.json b/transfermethodrepository/src/test/resources/successful_tmc_keys_response.json similarity index 100% rename from ui/src/test/resources/successful_tmc_keys_response.json rename to transfermethodrepository/src/test/resources/successful_tmc_keys_response.json diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java b/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java index 8949bacc4..a01999c20 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java @@ -27,6 +27,8 @@ package com.hyperwallet.android.ui.repository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepositoryImpl; import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryImpl; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java index 5d9904245..a18ee00e6 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java @@ -203,11 +203,10 @@ public void onClick(View v) { public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - TransferMethodRepositoryFactory transferMethodRepositoryFactory = TransferMethodRepositoryFactory.getInstance(); - RepositoryFactory factory = RepositoryFactory.getInstance(); + TransferMethodRepositoryFactory factory = TransferMethodRepositoryFactory.getInstance(); mPresenter = new AddTransferMethodPresenter(this, factory.getTransferMethodConfigurationRepository(), - transferMethodRepositoryFactory.getTransferMethodRepository()); + factory.getTransferMethodRepository()); } @Override diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java index 3dc580382..bcccca6e2 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java @@ -21,7 +21,7 @@ import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.graphql.HyperwalletTransferMethodConfigurationField; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; -import com.hyperwallet.android.ui.repository.TransferMethodConfigurationRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepository; import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; public class AddTransferMethodPresenter implements AddTransferMethodContract.Presenter { diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenter.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenter.java index 015fa8bfa..0aa30014e 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenter.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenter.java @@ -31,7 +31,7 @@ import com.hyperwallet.android.model.graphql.keyed.Currency; import com.hyperwallet.android.model.graphql.keyed.HyperwalletTransferMethodType; import com.hyperwallet.android.model.user.HyperwalletUser; -import com.hyperwallet.android.ui.repository.TransferMethodConfigurationRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepository; import com.hyperwallet.android.ui.repository.UserRepository; import java.util.ArrayList; diff --git a/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java b/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java index ca4ed8ee6..65fa4d4fa 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java +++ b/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java @@ -5,6 +5,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.notNullValue; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepository; import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; import org.junit.Test; diff --git a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenterTest.java b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenterTest.java index f76922634..ba80af20c 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenterTest.java +++ b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenterTest.java @@ -24,7 +24,7 @@ import com.hyperwallet.android.model.graphql.field.HyperwalletTransferMethodConfiguration; import com.hyperwallet.android.model.transfermethod.HyperwalletBankAccount; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; -import com.hyperwallet.android.ui.repository.TransferMethodConfigurationRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepository; import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; diff --git a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenterTest.java b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenterTest.java index d90192572..3bb1b8ac0 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenterTest.java +++ b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenterTest.java @@ -21,8 +21,8 @@ import com.hyperwallet.android.model.graphql.keyed.HyperwalletTransferMethodConfigurationKeyResult; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; import com.hyperwallet.android.model.user.HyperwalletUser; -import com.hyperwallet.android.ui.repository.TransferMethodConfigurationRepository; -import com.hyperwallet.android.ui.repository.TransferMethodConfigurationRepositoryImpl; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepositoryImpl; import com.hyperwallet.android.ui.repository.UserRepository; import com.hyperwallet.android.ui.repository.UserRepositoryImpl; import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; From 8577555e53041f2d979cd7254ec89cf0ea2a1f8c Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Thu, 18 Jul 2019 20:09:58 +0300 Subject: [PATCH 6/7] HW-54226. Returned jsons --- .../resources/error_tmc_keys_response.json | 13 + ...sful_tmc_fields_bank_account_response.json | 1250 +++++++++++++++++ .../successful_tmc_keys_response.json | 412 ++++++ 3 files changed, 1675 insertions(+) create mode 100644 ui/src/test/resources/error_tmc_keys_response.json create mode 100644 ui/src/test/resources/successful_tmc_fields_bank_account_response.json create mode 100644 ui/src/test/resources/successful_tmc_keys_response.json diff --git a/ui/src/test/resources/error_tmc_keys_response.json b/ui/src/test/resources/error_tmc_keys_response.json new file mode 100644 index 000000000..3f28d6252 --- /dev/null +++ b/ui/src/test/resources/error_tmc_keys_response.json @@ -0,0 +1,13 @@ +{ + "errors": [ + { + "message": "Validation error of type FieldUndefined: Field 'nodess' in type 'TransferMethodConfigurationConnection' is undefined @ 'transferMethodConfigurations/nodess'", + "locations": [ + { + "line": 4, + "column": 3 + } + ] + } + ] +} \ No newline at end of file diff --git a/ui/src/test/resources/successful_tmc_fields_bank_account_response.json b/ui/src/test/resources/successful_tmc_fields_bank_account_response.json new file mode 100644 index 000000000..238492d0b --- /dev/null +++ b/ui/src/test/resources/successful_tmc_fields_bank_account_response.json @@ -0,0 +1,1250 @@ +{ + "data": { + "transferMethodUIConfigurations": { + "nodes": [ + { + "country": "US", + "currency": "USD", + "transferMethodType": "BANK_ACCOUNT", + "profile": "INDIVIDUAL", + "fieldGroups": { + "nodes": [ + { + "group": "ACCOUNT_INFORMATION", + "fields": [ + { + "category": "ACCOUNT", + "dataType": "NUMBER", + "isEditable": true, + "label": "Routing Number", + "maxLength": 9, + "minLength": 9, + "name": "branchId", + "placeholder": "", + "regularExpression": "^[0-9]{9}$", + "isRequired": true, + "validationMessage": { + "length": "The exact length of this field is 9.", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "ACCOUNT", + "dataType": "NUMBER", + "isEditable": true, + "label": "Account Number", + "maxLength": 17, + "minLength": 4, + "name": "bankAccountId", + "placeholder": "", + "regularExpression": "^(?![0-]+$)[0-9-]{4,17}$", + "isRequired": true, + "validationMessage": { + "length": "The minimum length of this field is 4 and maximum length is 17.", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "ACCOUNT", + "dataType": "SELECTION", + "isEditable": true, + "fieldSelectionOptions": [ + { + "label": "Checking", + "value": "Checking" + }, + { + "label": "Savings", + "value": "Savings" + } + ], + "label": "Account Type", + "name": "bankAccountPurpose", + "placeholder": "", + "isRequired": true, + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + } + ] + }, + { + "group": "INTERMEDIARY_ACCOUNT", + "fields": [ + { + "category": "ACCOUNT", + "dataType": "SELECTION", + "isEditable": true, + "fieldSelectionOptions": [ + { + "label": "Self", + "value": "SELF" + } + ], + "label": "Relationship", + "name": "bankAccountRelationship", + "placeholder": "", + "isRequired": true, + "value": "SELF", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + } + ] + }, + { + "group": "ACCOUNT_HOLDER", + "fields": [ + { + "category": "PROFILE", + "dataType": "TEXT", + "isEditable": false, + "label": "First Name", + "name": "firstName", + "placeholder": "", + "regularExpression": "^[\\sa-zA-Z0-9\\-.,'\\u00C0-\\u00FF\\u0100-\\u017F\\u0180-\\u024F]{1,50}$", + "isRequired": true, + "value": "Brody", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "PROFILE", + "dataType": "TEXT", + "isEditable": true, + "label": "Middle Name", + "name": "middleName", + "placeholder": "", + "regularExpression": "^[\\sa-zA-Z0-9\\-.,'\\u00C0-\\u00FF\\u0100-\\u017F\\u0180-\\u024F]{1,50}$", + "isRequired": false, + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "PROFILE", + "dataType": "TEXT", + "isEditable": true, + "label": "Last Name", + "name": "lastName", + "placeholder": "", + "regularExpression": "^[\\sa-zA-Z0-9\\-.,'\\u00C0-\\u00FF\\u0100-\\u017F\\u0180-\\u024F]{1,50}$", + "isRequired": true, + "value": "Nehru", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "PROFILE", + "dataType": "DATE", + "isEditable": true, + "label": "Date of Birth", + "name": "dateOfBirth", + "placeholder": "", + "isRequired": false, + "value": "2000-01-01", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + } + ] + }, + { + "group": "CONTACT_INFORMATION", + "fields": [ + { + "category": "PROFILE", + "dataType": "PHONE", + "isEditable": true, + "label": "Phone Number", + "name": "phoneNumber", + "placeholder": "", + "regularExpression": "^(?=.{7,17}$)[\\+]{0,1}[0-9\\(\\)\\ \\.\\-]{1,}$", + "isRequired": false, + "value": "+1 604 6666666", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "PROFILE", + "dataType": "PHONE", + "isEditable": true, + "label": "Mobile Number", + "name": "mobileNumber", + "placeholder": "", + "regularExpression": "^(?=.{7,17}$)[\\+]{0,1}[0-9\\(\\)\\ \\.\\-]{1,}$", + "isRequired": false, + "value": "604 666 6666", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + } + ] + }, + { + "group": "ADDRESS", + "fields": [ + { + "category": "ADDRESS", + "dataType": "SELECTION", + "isEditable": false, + "fieldSelectionOptions": [ + { + "label": "Afghanistan", + "value": "AF" + }, + { + "label": "\u00c5land Islands", + "value": "AX" + }, + { + "label": "Albania", + "value": "AL" + }, + { + "label": "Algeria", + "value": "DZ" + }, + { + "label": "American Samoa", + "value": "AS" + }, + { + "label": "Andorra", + "value": "AD" + }, + { + "label": "Angola", + "value": "AO" + }, + { + "label": "Anguilla", + "value": "AI" + }, + { + "label": "Antarctica", + "value": "AQ" + }, + { + "label": "Antigua and Barbuda", + "value": "AG" + }, + { + "label": "Argentina", + "value": "AR" + }, + { + "label": "Armenia", + "value": "AM" + }, + { + "label": "Aruba", + "value": "AW" + }, + { + "label": "Australia", + "value": "AU" + }, + { + "label": "Austria", + "value": "AT" + }, + { + "label": "Azerbaijan", + "value": "AZ" + }, + { + "label": "Bahamas", + "value": "BS" + }, + { + "label": "Bahrain", + "value": "BH" + }, + { + "label": "Bangladesh", + "value": "BD" + }, + { + "label": "Barbados", + "value": "BB" + }, + { + "label": "Belgium", + "value": "BE" + }, + { + "label": "Belize", + "value": "BZ" + }, + { + "label": "Benin", + "value": "BJ" + }, + { + "label": "Bermuda", + "value": "BM" + }, + { + "label": "Bhutan", + "value": "BT" + }, + { + "label": "Bolivia", + "value": "BO" + }, + { + "label": "Caribbean Netherlands", + "value": "BQ" + }, + { + "label": "Bosnia and Herzegovina", + "value": "BA" + }, + { + "label": "Botswana", + "value": "BW" + }, + { + "label": "Bouvet Island", + "value": "BV" + }, + { + "label": "Brazil", + "value": "BR" + }, + { + "label": "British Indian Ocean Territory", + "value": "IO" + }, + { + "label": "Brunei", + "value": "BN" + }, + { + "label": "Bulgaria", + "value": "BG" + }, + { + "label": "Burkina Faso", + "value": "BF" + }, + { + "label": "Burundi", + "value": "BI" + }, + { + "label": "Cambodia", + "value": "KH" + }, + { + "label": "Cameroon", + "value": "CM" + }, + { + "label": "Canada", + "value": "CA" + }, + { + "label": "Cape Verde", + "value": "CV" + }, + { + "label": "Cayman Islands", + "value": "KY" + }, + { + "label": "Chad", + "value": "TD" + }, + { + "label": "Chile", + "value": "CL" + }, + { + "label": "China", + "value": "CN" + }, + { + "label": "Christmas Island", + "value": "CX" + }, + { + "label": "Cocos [Keeling] Islands", + "value": "CC" + }, + { + "label": "Colombia", + "value": "CO" + }, + { + "label": "Comoros", + "value": "KM" + }, + { + "label": "Congo - Brazzaville", + "value": "CG" + }, + { + "label": "Cook Islands", + "value": "CK" + }, + { + "label": "Costa Rica", + "value": "CR" + }, + { + "label": "C\u00f4te d\u2019Ivoire", + "value": "CI" + }, + { + "label": "Croatia", + "value": "HR" + }, + { + "label": "Cura\u00e7ao", + "value": "CW" + }, + { + "label": "Cyprus", + "value": "CY" + }, + { + "label": "Czech Republic", + "value": "CZ" + }, + { + "label": "Denmark", + "value": "DK" + }, + { + "label": "Djibouti", + "value": "DJ" + }, + { + "label": "Dominica", + "value": "DM" + }, + { + "label": "Dominican Republic", + "value": "DO" + }, + { + "label": "Timor-Leste", + "value": "TL" + }, + { + "label": "Ecuador", + "value": "EC" + }, + { + "label": "Egypt", + "value": "EG" + }, + { + "label": "El Salvador", + "value": "SV" + }, + { + "label": "Equatorial Guinea", + "value": "GQ" + }, + { + "label": "Estonia", + "value": "EE" + }, + { + "label": "Ethiopia", + "value": "ET" + }, + { + "label": "Falkland Islands", + "value": "FK" + }, + { + "label": "Faroe Islands", + "value": "FO" + }, + { + "label": "Fiji", + "value": "FJ" + }, + { + "label": "Finland", + "value": "FI" + }, + { + "label": "France", + "value": "FR" + }, + { + "label": "French Guiana", + "value": "GF" + }, + { + "label": "French Polynesia", + "value": "PF" + }, + { + "label": "French Southern Territories", + "value": "TF" + }, + { + "label": "Gabon", + "value": "GA" + }, + { + "label": "Gambia", + "value": "GM" + }, + { + "label": "Georgia", + "value": "GE" + }, + { + "label": "Germany", + "value": "DE" + }, + { + "label": "Ghana", + "value": "GH" + }, + { + "label": "Gibraltar", + "value": "GI" + }, + { + "label": "Greece", + "value": "GR" + }, + { + "label": "Greenland", + "value": "GL" + }, + { + "label": "Grenada", + "value": "GD" + }, + { + "label": "Guadeloupe", + "value": "GP" + }, + { + "label": "Guam", + "value": "GU" + }, + { + "label": "Guatemala", + "value": "GT" + }, + { + "label": "Guernsey", + "value": "GG" + }, + { + "label": "Guinea", + "value": "GN" + }, + { + "label": "Guyana", + "value": "GY" + }, + { + "label": "Haiti", + "value": "HT" + }, + { + "label": "Heard Island and McDonald Islands", + "value": "HM" + }, + { + "label": "Honduras", + "value": "HN" + }, + { + "label": "Hong Kong SAR China", + "value": "HK" + }, + { + "label": "Hungary", + "value": "HU" + }, + { + "label": "Iceland", + "value": "IS" + }, + { + "label": "India", + "value": "IN" + }, + { + "label": "Indonesia", + "value": "ID" + }, + { + "label": "Ireland", + "value": "IE" + }, + { + "label": "Isle of Man", + "value": "IM" + }, + { + "label": "Israel", + "value": "IL" + }, + { + "label": "Italy", + "value": "IT" + }, + { + "label": "Jamaica", + "value": "JM" + }, + { + "label": "Japan", + "value": "JP" + }, + { + "label": "Jersey", + "value": "JE" + }, + { + "label": "Jordan", + "value": "JO" + }, + { + "label": "Kazakhstan", + "value": "KZ" + }, + { + "label": "Kenya", + "value": "KE" + }, + { + "label": "Kiribati", + "value": "KI" + }, + { + "label": "South Korea", + "value": "KR" + }, + { + "label": "Kosovo", + "value": "XK" + }, + { + "label": "Kuwait", + "value": "KW" + }, + { + "label": "Kyrgyzstan", + "value": "KG" + }, + { + "label": "Laos", + "value": "LA" + }, + { + "label": "Latvia", + "value": "LV" + }, + { + "label": "Lesotho", + "value": "LS" + }, + { + "label": "Liechtenstein", + "value": "LI" + }, + { + "label": "Lithuania", + "value": "LT" + }, + { + "label": "Luxembourg", + "value": "LU" + }, + { + "label": "Macau SAR China", + "value": "MO" + }, + { + "label": "Macedonia", + "value": "MK" + }, + { + "label": "Madagascar", + "value": "MG" + }, + { + "label": "Malawi", + "value": "MW" + }, + { + "label": "Malaysia", + "value": "MY" + }, + { + "label": "Maldives", + "value": "MV" + }, + { + "label": "Mali", + "value": "ML" + }, + { + "label": "Malta", + "value": "MT" + }, + { + "label": "Marshall Islands", + "value": "MH" + }, + { + "label": "Martinique", + "value": "MQ" + }, + { + "label": "Mauritania", + "value": "MR" + }, + { + "label": "Mauritius", + "value": "MU" + }, + { + "label": "Mayotte", + "value": "YT" + }, + { + "label": "Mexico", + "value": "MX" + }, + { + "label": "Micronesia", + "value": "FM" + }, + { + "label": "Moldova", + "value": "MD" + }, + { + "label": "Monaco", + "value": "MC" + }, + { + "label": "Mongolia", + "value": "MN" + }, + { + "label": "Montenegro", + "value": "ME" + }, + { + "label": "Montserrat", + "value": "MS" + }, + { + "label": "Morocco", + "value": "MA" + }, + { + "label": "Mozambique", + "value": "MZ" + }, + { + "label": "Namibia", + "value": "NA" + }, + { + "label": "Nauru", + "value": "NR" + }, + { + "label": "Nepal", + "value": "NP" + }, + { + "label": "Netherlands", + "value": "NL" + }, + { + "label": "Netherlands Antilles", + "value": "AN" + }, + { + "label": "New Caledonia", + "value": "NC" + }, + { + "label": "New Zealand", + "value": "NZ" + }, + { + "label": "Nicaragua", + "value": "NI" + }, + { + "label": "Niger", + "value": "NE" + }, + { + "label": "Nigeria", + "value": "NG" + }, + { + "label": "Niue", + "value": "NU" + }, + { + "label": "Norfolk Island", + "value": "NF" + }, + { + "label": "Northern Mariana Islands", + "value": "MP" + }, + { + "label": "Norway", + "value": "NO" + }, + { + "label": "Oman", + "value": "OM" + }, + { + "label": "Pakistan", + "value": "PK" + }, + { + "label": "Palau", + "value": "PW" + }, + { + "label": "Palestinian Territories", + "value": "PS" + }, + { + "label": "Panama", + "value": "PA" + }, + { + "label": "Papua New Guinea", + "value": "PG" + }, + { + "label": "Paraguay", + "value": "PY" + }, + { + "label": "Peru", + "value": "PE" + }, + { + "label": "Philippines", + "value": "PH" + }, + { + "label": "Pitcairn Islands", + "value": "PN" + }, + { + "label": "Poland", + "value": "PL" + }, + { + "label": "Portugal", + "value": "PT" + }, + { + "label": "Puerto Rico", + "value": "PR" + }, + { + "label": "Qatar", + "value": "QA" + }, + { + "label": "R\u00e9union", + "value": "RE" + }, + { + "label": "Romania", + "value": "RO" + }, + { + "label": "Russia", + "value": "RU" + }, + { + "label": "Rwanda", + "value": "RW" + }, + { + "label": "Saint Kitts and Nevis", + "value": "KN" + }, + { + "label": "Saint Lucia", + "value": "LC" + }, + { + "label": "Saint Martin", + "value": "MF" + }, + { + "label": "Saint Vincent and the Grenadines", + "value": "VC" + }, + { + "label": "Samoa", + "value": "WS" + }, + { + "label": "San Marino", + "value": "SM" + }, + { + "label": "S\u00e3o Tom\u00e9 and Pr\u00edncipe", + "value": "ST" + }, + { + "label": "Saudi Arabia", + "value": "SA" + }, + { + "label": "Senegal", + "value": "SN" + }, + { + "label": "Serbia", + "value": "RS" + }, + { + "label": "Seychelles", + "value": "SC" + }, + { + "label": "Sierra Leone", + "value": "SL" + }, + { + "label": "Singapore", + "value": "SG" + }, + { + "label": "Sint Maarten", + "value": "SX" + }, + { + "label": "Slovakia", + "value": "SK" + }, + { + "label": "Slovenia", + "value": "SI" + }, + { + "label": "Solomon Islands", + "value": "SB" + }, + { + "label": "South Africa", + "value": "ZA" + }, + { + "label": "South Georgia and the South Sandwich Islands", + "value": "GS" + }, + { + "label": "South Sudan", + "value": "SS" + }, + { + "label": "Spain", + "value": "ES" + }, + { + "label": "Sri Lanka", + "value": "LK" + }, + { + "label": "Saint Barth\u00e9lemy", + "value": "BL" + }, + { + "label": "Saint Helena", + "value": "SH" + }, + { + "label": "Saint Pierre and Miquelon", + "value": "PM" + }, + { + "label": "Suriname", + "value": "SR" + }, + { + "label": "Svalbard and Jan Mayen", + "value": "SJ" + }, + { + "label": "Swaziland", + "value": "SZ" + }, + { + "label": "Sweden", + "value": "SE" + }, + { + "label": "Switzerland", + "value": "CH" + }, + { + "label": "Taiwan", + "value": "TW" + }, + { + "label": "Tajikistan", + "value": "TJ" + }, + { + "label": "Tanzania", + "value": "TZ" + }, + { + "label": "Thailand", + "value": "TH" + }, + { + "label": "Togo", + "value": "TG" + }, + { + "label": "Tokelau", + "value": "TK" + }, + { + "label": "Tonga", + "value": "TO" + }, + { + "label": "Trinidad and Tobago", + "value": "TT" + }, + { + "label": "Tunisia", + "value": "TN" + }, + { + "label": "Turkey", + "value": "TR" + }, + { + "label": "Turkmenistan", + "value": "TM" + }, + { + "label": "Turks and Caicos Islands", + "value": "TC" + }, + { + "label": "Tuvalu", + "value": "TV" + }, + { + "label": "Uganda", + "value": "UG" + }, + { + "label": "Ukraine", + "value": "UA" + }, + { + "label": "United Arab Emirates", + "value": "AE" + }, + { + "label": "United Kingdom", + "value": "GB" + }, + { + "label": "United States", + "value": "US" + }, + { + "label": "U.S. Outlying Islands", + "value": "UM" + }, + { + "label": "Uruguay", + "value": "UY" + }, + { + "label": "Uzbekistan", + "value": "UZ" + }, + { + "label": "Vanuatu", + "value": "VU" + }, + { + "label": "Vatican City", + "value": "VA" + }, + { + "label": "Venezuela", + "value": "VE" + }, + { + "label": "Vietnam", + "value": "VN" + }, + { + "label": "British Virgin Islands", + "value": "VG" + }, + { + "label": "U.S. Virgin Islands", + "value": "VI" + }, + { + "label": "Wallis and Futuna", + "value": "WF" + }, + { + "label": "Western Sahara", + "value": "EH" + }, + { + "label": "Zambia", + "value": "ZM" + } + ], + "label": "Country", + "name": "country", + "placeholder": "", + "isRequired": true, + "value": "CA", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "ADDRESS", + "dataType": "TEXT", + "isEditable": true, + "label": "State\/Province", + "name": "stateProvince", + "placeholder": "", + "regularExpression": "^[\\sa-zA-Z0-9\\-().,'\\u00C0-\\u00FF\\u0100-\\u017F\\u0180-\\u024F]{2,50}$", + "isRequired": true, + "value": "BC", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "ADDRESS", + "dataType": "TEXT", + "isEditable": true, + "label": "Street", + "name": "addressLine1", + "placeholder": "", + "regularExpression": "^[\\sa-zA-Z0-9\\\/\\-:().,#;'\u00b0&\\u00C0-\\u00FF\\u0100-\\u017F\\u0180-\\u024F]{2,100}$", + "isRequired": true, + "value": "950 Granville Street", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "ADDRESS", + "dataType": "TEXT", + "isEditable": true, + "label": "City", + "name": "city", + "placeholder": "", + "regularExpression": "^[\\sa-zA-Z0-9\\-().,'\\u00C0-\\u00FF\\u0100-\\u017F\\u0180-\\u024F]{2,50}$", + "isRequired": true, + "value": "Vancouver", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "ADDRESS", + "dataType": "TEXT", + "isEditable": true, + "label": "Zip\/Postal Code", + "name": "postalCode", + "placeholder": "", + "regularExpression": "^(?![\\-]+$)[\\sa-zA-Z0-9\\-]{2,16}$", + "isRequired": true, + "value": "V6Z1L2", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + } + ] + } + ] + } + } + ] + }, + "fees": { + "nodes": [ + { + "country": "US", + "currency": "USD", + "transferMethodType": "BANK_ACCOUNT", + "value": "2.00", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "country": "US", + "currency": "USD", + "transferMethodType": "BANK_ACCOUNT", + "value": "1-2 Business days" + } + ] + } + } +} \ No newline at end of file diff --git a/ui/src/test/resources/successful_tmc_keys_response.json b/ui/src/test/resources/successful_tmc_keys_response.json new file mode 100644 index 000000000..64d4c6d00 --- /dev/null +++ b/ui/src/test/resources/successful_tmc_keys_response.json @@ -0,0 +1,412 @@ +{ + "data": { + "countries": { + "nodes": [ + { + "code": "CA", + "name": "Canada", + "currencies": { + "nodes": [ + { + "code": "CAD", + "name": "Canadian Dollar", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "CA", + "currency": "CAD", + "transferMethodType": "BANK_ACCOUNT", + "value": "2.20", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "1-2 Business days", + "country": "CA", + "currency": "CAD", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + }, + { + "code": "PAYPAL_ACCOUNT", + "name": "PayPal Account", + "fees": { + "nodes": [ + { + "country": "CA", + "currency": "CAD", + "transferMethodType": "PAYPAL_ACCOUNT", + "value": "0.25", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "IMMEDIATE", + "country": "CA", + "currency": "CAD", + "transferMethodType": "PAYPAL_ACCOUNT" + } + ] + } + } + ] + } + }, + { + "code": "USD", + "name": "United States Dollar", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "CA", + "currency": "USD", + "transferMethodType": "BANK_ACCOUNT", + "value": "2.00", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "1-2 Business days", + "country": "CA", + "currency": "USD", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + } + ] + } + } + ] + } + }, + { + "code": "HR", + "name": "Croatia", + "currencies": { + "nodes": [ + { + "code": "EUR", + "name": "Euro", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "HR", + "currency": "EUR", + "transferMethodType": "BANK_ACCOUNT", + "value": "1.50", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "2-3 Business days", + "country": "HR", + "currency": "EUR", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + } + ] + } + }, + { + "code": "HRK", + "name": "Croatian Kuna", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "HR", + "currency": "HRK", + "transferMethodType": "BANK_ACCOUNT", + "value": "1.50", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "1-2 Business days", + "country": "HR", + "currency": "HRK", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + } + ] + } + } + ] + } + }, + { + "code": "MX", + "name": "Mexico", + "currencies": { + "nodes": [ + { + "code": "MXN", + "name": "Mexican Peso", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "MX", + "currency": "MXN", + "transferMethodType": "BANK_ACCOUNT", + "value": "26.15", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "1-2 Business days", + "country": "MX", + "currency": "MXN", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + } + ] + } + } + ] + } + }, + { + "code": "GB", + "name": "United Kingdom", + "currencies": { + "nodes": [ + { + "code": "EUR", + "name": "Euro", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "GB", + "currency": "EUR", + "transferMethodType": "BANK_ACCOUNT", + "value": "1.50", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "2-4 Business days", + "country": "GB", + "currency": "EUR", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + } + ] + } + }, + { + "code": "GBP", + "name": "British Pound", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "GB", + "currency": "GBP", + "transferMethodType": "BANK_ACCOUNT", + "value": "1.20", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "1-2 Business days", + "country": "GB", + "currency": "GBP", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + } + ] + } + } + ] + } + }, + { + "code": "US", + "name": "United States", + "currencies": { + "nodes": [ + { + "code": "USD", + "name": "United States Dollar", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "US", + "currency": "USD", + "transferMethodType": "BANK_ACCOUNT", + "value": "2.00", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "1-2 Business days", + "country": "US", + "currency": "USD", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + }, + { + "code": "BANK_CARD", + "name": "Debit Card", + "fees": { + "nodes": [ + { + "country": "US", + "currency": "USD", + "transferMethodType": "BANK_CARD", + "value": "1.75", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "IMMEDIATE", + "country": "US", + "currency": "USD", + "transferMethodType": "BANK_CARD" + } + ] + } + }, + { + "code": "WIRE_ACCOUNT", + "name": "Wire Transfer", + "fees": { + "nodes": [ + { + "country": "US", + "currency": "USD", + "transferMethodType": "WIRE_ACCOUNT", + "value": "20.00", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "1-3 Business days", + "country": "US", + "currency": "USD", + "transferMethodType": "WIRE_ACCOUNT" + } + ] + } + }, + { + "code": "PAYPAL_ACCOUNT", + "name": "PayPal Account", + "fees": { + "nodes": [ + { + "country": "US", + "currency": "USD", + "transferMethodType": "PAYPAL_ACCOUNT", + "value": "0.25", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "IMMEDIATE", + "country": "US", + "currency": "USD", + "transferMethodType": "PAYPAL_ACCOUNT" + } + ] + } + } + ] + } + } + ] + } + } + ] + } + } +} \ No newline at end of file From d1f55ac0618a2efac4cdf2bfa240c548d88baaef Mon Sep 17 00:00:00 2001 From: Flavio Mattos Date: Thu, 18 Jul 2019 11:36:15 -0700 Subject: [PATCH 7/7] adding todo --- .../repository/TransferMethodConfigurationRepositoryImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java index 1799ba8d7..abf89e227 100644 --- a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java @@ -50,6 +50,7 @@ public class TransferMethodConfigurationRepositoryImpl implements TransferMethod private final Map mFieldMap; private HyperwalletTransferMethodConfigurationKey mTransferMethodConfigurationKey; + //todo use default modifier after RepositoryFactory is removed public TransferMethodConfigurationRepositoryImpl() { mHandler = new Handler(); mFieldMap = new HashMap<>();